NAV
Python Go HTTP JavaScript Node.js

MLS API v1

Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.

Base URLs:

Authentication

AccountingService

Returns a list of invoices

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/accounting/v1beta1/invoices', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/accounting/v1beta1/invoices", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/accounting/v1beta1/invoices HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/accounting/v1beta1/invoices',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/accounting/v1beta1/invoices',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /accounting/v1beta1/invoices

List all the invoices connected to your account.

Parameters

Name In Type Required Description
start_time query string(date-time) false The filter is applied to issue_time
end_time query string(date-time) false The filter is applied to issue_time

Example responses

200 Response

{
  "invoices": [
    {
      "amount": 0.1,
      "currency": "string",
      "due_time": "2019-08-24T14:15:22Z",
      "end_time": "2019-08-24T14:15:22Z",
      "id": "string",
      "issue_time": "2019-08-24T14:15:22Z",
      "org_id": "string",
      "payment": {
        "amount": 0.1,
        "create_time": "2019-08-24T14:15:22Z",
        "currency": "string",
        "id": "string",
        "invoice_id": "string",
        "message": "string",
        "org_id": "string",
        "payment_method": {
          "card": {
            "brand": "string",
            "exp_month": 0,
            "exp_year": 0,
            "last_digits": "string",
            "name": "string"
          },
          "create_time": "2019-08-24T14:15:22Z",
          "id": "string",
          "is_default": true,
          "org_id": "string",
          "provider": "PAYMENT_METHOD_PROVIDER_UNSPECIFIED",
          "update_time": "2019-08-24T14:15:22Z"
        },
        "status": "PAYMENT_STATUS_UNSPECIFIED"
      },
      "start_time": "2019-08-24T14:15:22Z",
      "status": "STATUS_UNSPECIFIED",
      "update_time": "2019-08-24T14:15:22Z",
      "usages": [
        {
          "amount": 0.1,
          "amount_unit": "AMOUNT_UNIT_UNSPECIFIED",
          "cost": {
            "amount": 0.1,
            "currency": "string"
          },
          "description": "string",
          "end_time": "2019-08-24T14:15:22Z",
          "sku_id": "string",
          "start_time": "2019-08-24T14:15:22Z"
        }
      ]
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.accounting.v1beta1.ListInvoicesResponse
default Default An unexpected error response. google.rpc.Status

Download an invoice

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/accounting/v1beta1/invoices/{invoice_id}/download', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/accounting/v1beta1/invoices/{invoice_id}/download", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/accounting/v1beta1/invoices/{invoice_id}/download HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/accounting/v1beta1/invoices/{invoice_id}/download',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/accounting/v1beta1/invoices/{invoice_id}/download',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /accounting/v1beta1/invoices/{invoice_id}/download

Generates and return a downloadable URL of invoice.

Parameters

Name In Type Required Description
invoice_id path string true Unique id of the invoice.

Example responses

200 Response

{
  "download_url": "string"
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.accounting.v1beta1.DownloadInvoiceResponse
default Default An unexpected error response. google.rpc.Status

Return organization's information

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/accounting/v1beta1/organizations/{org_id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/accounting/v1beta1/organizations/{org_id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/accounting/v1beta1/organizations/{org_id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/accounting/v1beta1/organizations/{org_id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/accounting/v1beta1/organizations/{org_id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /accounting/v1beta1/organizations/{org_id}

Get organization's information

Parameters

Name In Type Required Description
org_id path string true none

Example responses

200 Response

{
  "organization": {
    "email": "string",
    "id": "string",
    "invoice_template_id": "string",
    "is_enabled": true,
    "is_test": true,
    "name": "string",
    "tax": {
      "address_lines": [
        "string"
      ],
      "city": "string",
      "country": "st",
      "id": "string",
      "name": "string",
      "phone_number": "string",
      "province": "string",
      "zip_code": "string"
    }
  }
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.accounting.v1beta1.GetOrganizationResponse
404 Not Found Organization not found Inline
500 Internal Server Error Internal Server Error Inline
default Default An unexpected error response. google.rpc.Status

Response Schema

Updates organization data

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.patch('https://mcls-api.mycujoo.tv/accounting/v1beta1/organizations/{org_id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "https://mcls-api.mycujoo.tv/accounting/v1beta1/organizations/{org_id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PATCH https://mcls-api.mycujoo.tv/accounting/v1beta1/organizations/{org_id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "email": "string",
  "id": "string",
  "invoice_template_id": "string",
  "is_enabled": true,
  "is_test": true,
  "name": "string",
  "tax": {
    "address_lines": [
      "string"
    ],
    "city": "string",
    "country": "st",
    "id": "string",
    "name": "string",
    "phone_number": "string",
    "province": "string",
    "zip_code": "string"
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/accounting/v1beta1/organizations/{org_id}',
{
  method: 'PATCH',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "email": "string",
  "id": "string",
  "invoice_template_id": "string",
  "is_enabled": true,
  "is_test": true,
  "name": "string",
  "tax": {
    "address_lines": [
      "string"
    ],
    "city": "string",
    "country": "st",
    "id": "string",
    "name": "string",
    "phone_number": "string",
    "province": "string",
    "zip_code": "string"
  }
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/accounting/v1beta1/organizations/{org_id}',
{
  method: 'PATCH',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PATCH /accounting/v1beta1/organizations/{org_id}

Updates organization's info

Body parameter

{
  "email": "string",
  "id": "string",
  "invoice_template_id": "string",
  "is_enabled": true,
  "is_test": true,
  "name": "string",
  "tax": {
    "address_lines": [
      "string"
    ],
    "city": "string",
    "country": "st",
    "id": "string",
    "name": "string",
    "phone_number": "string",
    "province": "string",
    "zip_code": "string"
  }
}

Parameters

Name In Type Required Description
org_id path string true none
body body mycujoo.accounting.v1beta1.Organization true none

Example responses

200 Response

{
  "email": "string",
  "id": "string",
  "invoice_template_id": "string",
  "is_enabled": true,
  "is_test": true,
  "name": "string",
  "tax": {
    "address_lines": [
      "string"
    ],
    "city": "string",
    "country": "st",
    "id": "string",
    "name": "string",
    "phone_number": "string",
    "province": "string",
    "zip_code": "string"
  }
}

Responses

Status Meaning Description Schema
200 OK (empty) mycujoo.accounting.v1beta1.Organization
404 Not Found Organization not found Inline
500 Internal Server Error Internal Server Error Inline
default Default An unexpected error response. google.rpc.Status

Response Schema

Returns payments activities

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/accounting/v1beta1/payments', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/accounting/v1beta1/payments", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/accounting/v1beta1/payments HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/accounting/v1beta1/payments',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/accounting/v1beta1/payments',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /accounting/v1beta1/payments

Returns payments activities.

Parameters

Name In Type Required Description
invoice_id query string false Invoice ID that payments are related to it.

Example responses

200 Response

{
  "payments": [
    {
      "amount": 0.1,
      "create_time": "2019-08-24T14:15:22Z",
      "currency": "string",
      "id": "string",
      "invoice_id": "string",
      "message": "string",
      "org_id": "string",
      "payment_method": {
        "card": {
          "brand": "string",
          "exp_month": 0,
          "exp_year": 0,
          "last_digits": "string",
          "name": "string"
        },
        "create_time": "2019-08-24T14:15:22Z",
        "id": "string",
        "is_default": true,
        "org_id": "string",
        "provider": "PAYMENT_METHOD_PROVIDER_UNSPECIFIED",
        "update_time": "2019-08-24T14:15:22Z"
      },
      "status": "PAYMENT_STATUS_UNSPECIFIED"
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.accounting.v1beta1.ListPaymentsResponse
500 Internal Server Error Internal Server Error Inline
default Default An unexpected error response. google.rpc.Status

Response Schema

Returns the list of payment methods

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/accounting/v1beta1/payments/methods', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/accounting/v1beta1/payments/methods", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/accounting/v1beta1/payments/methods HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/accounting/v1beta1/payments/methods',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/accounting/v1beta1/payments/methods',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /accounting/v1beta1/payments/methods

Returns the list of payment methods.

Example responses

200 Response

{
  "payment_method": [
    {
      "card": {
        "brand": "string",
        "exp_month": 0,
        "exp_year": 0,
        "last_digits": "string",
        "name": "string"
      },
      "create_time": "2019-08-24T14:15:22Z",
      "id": "string",
      "is_default": true,
      "org_id": "string",
      "provider": "PAYMENT_METHOD_PROVIDER_UNSPECIFIED",
      "update_time": "2019-08-24T14:15:22Z"
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.accounting.v1beta1.ListPaymentMethodsResponse
500 Internal Server Error Internal Server Error Inline
default Default An unexpected error response. google.rpc.Status

Response Schema

Creates a new Stripe payment method

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.post('https://mcls-api.mycujoo.tv/accounting/v1beta1/payments/methods/stripe', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/accounting/v1beta1/payments/methods/stripe", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/accounting/v1beta1/payments/methods/stripe HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "setup_intent_id": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/accounting/v1beta1/payments/methods/stripe',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "setup_intent_id": "string"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/accounting/v1beta1/payments/methods/stripe',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /accounting/v1beta1/payments/methods/stripe

Creates a new Stripe payment method.

Body parameter

{
  "setup_intent_id": "string"
}

Parameters

Name In Type Required Description
body body mycujoo.accounting.v1beta1.CreateStripePaymentMethodRequest true none

Example responses

200 Response

{
  "card": {
    "brand": "string",
    "exp_month": 0,
    "exp_year": 0,
    "last_digits": "string",
    "name": "string"
  },
  "create_time": "2019-08-24T14:15:22Z",
  "id": "string",
  "is_default": true,
  "org_id": "string",
  "provider": "PAYMENT_METHOD_PROVIDER_UNSPECIFIED",
  "update_time": "2019-08-24T14:15:22Z"
}

Responses

Status Meaning Description Schema
200 OK (empty) mycujoo.accounting.v1beta1.PaymentMethod
500 Internal Server Error Internal Server Error Inline
default Default An unexpected error response. google.rpc.Status

Response Schema

Returns the requested payment method

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/accounting/v1beta1/payments/methods/{id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/accounting/v1beta1/payments/methods/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/accounting/v1beta1/payments/methods/{id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/accounting/v1beta1/payments/methods/{id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/accounting/v1beta1/payments/methods/{id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /accounting/v1beta1/payments/methods/{id}

Returns the requested payment method.

Parameters

Name In Type Required Description
id path string true Unique Payment method ID

Example responses

200 Response

{
  "payment_method": {
    "card": {
      "brand": "string",
      "exp_month": 0,
      "exp_year": 0,
      "last_digits": "string",
      "name": "string"
    },
    "create_time": "2019-08-24T14:15:22Z",
    "id": "string",
    "is_default": true,
    "org_id": "string",
    "provider": "PAYMENT_METHOD_PROVIDER_UNSPECIFIED",
    "update_time": "2019-08-24T14:15:22Z"
  }
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.accounting.v1beta1.GetPaymentMethodResponse
404 Not Found Payment method not found Inline
500 Internal Server Error Internal Server Error Inline
default Default An unexpected error response. google.rpc.Status

Response Schema

Deletes an payment method

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.delete('https://mcls-api.mycujoo.tv/accounting/v1beta1/payments/methods/{id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "https://mcls-api.mycujoo.tv/accounting/v1beta1/payments/methods/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE https://mcls-api.mycujoo.tv/accounting/v1beta1/payments/methods/{id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/accounting/v1beta1/payments/methods/{id}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/accounting/v1beta1/payments/methods/{id}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

DELETE /accounting/v1beta1/payments/methods/{id}

Deletes a payment method.

Parameters

Name In Type Required Description
id path string true Unique Payment method ID

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.accounting.v1beta1.DeletePaymentMethodResponse
404 Not Found Payment method not found Inline
500 Internal Server Error Internal Server Error Inline
default Default An unexpected error response. google.rpc.Status

Response Schema

Updates the existing payment method

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.patch('https://mcls-api.mycujoo.tv/accounting/v1beta1/payments/methods/{id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "https://mcls-api.mycujoo.tv/accounting/v1beta1/payments/methods/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PATCH https://mcls-api.mycujoo.tv/accounting/v1beta1/payments/methods/{id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "is_default": true
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/accounting/v1beta1/payments/methods/{id}',
{
  method: 'PATCH',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "is_default": true
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/accounting/v1beta1/payments/methods/{id}',
{
  method: 'PATCH',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PATCH /accounting/v1beta1/payments/methods/{id}

Modifying the existing payment method.

Body parameter

{
  "is_default": true
}

Parameters

Name In Type Required Description
id path string true Unique Payment method ID
body body mycujoo.accounting.v1beta1.PaymentMethodUpdate true none

Example responses

200 Response

{
  "card": {
    "brand": "string",
    "exp_month": 0,
    "exp_year": 0,
    "last_digits": "string",
    "name": "string"
  },
  "create_time": "2019-08-24T14:15:22Z",
  "id": "string",
  "is_default": true,
  "org_id": "string",
  "provider": "PAYMENT_METHOD_PROVIDER_UNSPECIFIED",
  "update_time": "2019-08-24T14:15:22Z"
}

Responses

Status Meaning Description Schema
200 OK (empty) mycujoo.accounting.v1beta1.PaymentMethod
404 Not Found Payment method not found Inline
500 Internal Server Error Internal Server Error Inline
default Default An unexpected error response. google.rpc.Status

Response Schema

Creates a new stripe setup intent

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.post('https://mcls-api.mycujoo.tv/accounting/v1beta1/payments/providers/stripe/setupintent', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/accounting/v1beta1/payments/providers/stripe/setupintent", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/accounting/v1beta1/payments/providers/stripe/setupintent HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/accounting/v1beta1/payments/providers/stripe/setupintent',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/accounting/v1beta1/payments/providers/stripe/setupintent',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /accounting/v1beta1/payments/providers/stripe/setupintent

Creates a new stripe setup intent.

Body parameter

{}

Parameters

Name In Type Required Description
body body mycujoo.accounting.v1beta1.CreateStripeSetupIntentRequest true none

Example responses

200 Response

{
  "client_secret": "string"
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.accounting.v1beta1.CreateStripeSetupIntentResponse
500 Internal Server Error Internal Server Error Inline
default Default An unexpected error response. google.rpc.Status

Response Schema

Returns a list of SKU pricings.

Code samples

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('https://mcls-api.mycujoo.tv/accounting/v1beta1/pricing', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/accounting/v1beta1/pricing", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/accounting/v1beta1/pricing HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/accounting/v1beta1/pricing',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/accounting/v1beta1/pricing',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /accounting/v1beta1/pricing

List all prices.

Example responses

200 Response

{
  "pricings": [
    {
      "current_usage": 0.1,
      "description": "string",
      "discounts": [
        {
          "end_time": "2019-08-24T14:15:22Z",
          "max_usage": 0.1,
          "min_usage": 0.1,
          "price": {
            "currency_code": "string",
            "nanos": 0,
            "units": "string"
          },
          "start_time": "2019-08-24T14:15:22Z"
        }
      ],
      "msrp": {
        "currency_code": "string",
        "nanos": 0,
        "units": "string"
      },
      "price": {
        "currency_code": "string",
        "nanos": 0,
        "units": "string"
      },
      "sku_id": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.accounting.v1beta1.ListPricingResponse
default Default An unexpected error response. google.rpc.Status

Returns a list of SKU pricings specifically for an organization.

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/accounting/v1beta1/pricing/{org_id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/accounting/v1beta1/pricing/{org_id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/accounting/v1beta1/pricing/{org_id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/accounting/v1beta1/pricing/{org_id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/accounting/v1beta1/pricing/{org_id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /accounting/v1beta1/pricing/{org_id}

List all prices for your account.

Parameters

Name In Type Required Description
org_id path string true none

Example responses

200 Response

{
  "pricings": [
    {
      "current_usage": 0.1,
      "description": "string",
      "discounts": [
        {
          "end_time": "2019-08-24T14:15:22Z",
          "max_usage": 0.1,
          "min_usage": 0.1,
          "price": {
            "currency_code": "string",
            "nanos": 0,
            "units": "string"
          },
          "start_time": "2019-08-24T14:15:22Z"
        }
      ],
      "msrp": {
        "currency_code": "string",
        "nanos": 0,
        "units": "string"
      },
      "price": {
        "currency_code": "string",
        "nanos": 0,
        "units": "string"
      },
      "sku_id": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.accounting.v1beta1.ListOrganizationPricingResponse
default Default An unexpected error response. google.rpc.Status

Returns a list of skus usages

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/accounting/v1beta1/usages', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/accounting/v1beta1/usages", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/accounting/v1beta1/usages HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/accounting/v1beta1/usages',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/accounting/v1beta1/usages',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /accounting/v1beta1/usages

List all the SKUs usages connected to your account.

Parameters

Name In Type Required Description
aggregate query boolean false Aggregate multi SKUs with the same ID in one result
start_time query string(date-time) false The filter applies to start_time
end_time query string(date-time) false The filter applies to end_time
page_size query integer(int32) false A positive number that is the maximum number of results to return.
page_token query string false If this field is not empty then it must contain the next_page_token value

Detailed descriptions

page_token: If this field is not empty then it must contain the next_page_token value returned by a previous call to this method. Using this field causes the method to return additional results from the previous method call.

Example responses

200 Response

{
  "next_page_token": "string",
  "usages": [
    {
      "amount": 0.1,
      "end_time": "2019-08-24T14:15:22Z",
      "sku_id": "string",
      "start_time": "2019-08-24T14:15:22Z"
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.accounting.v1beta1.ListSKUUsageResponse
default Default An unexpected error response. google.rpc.Status

Returns a list of running skus usages for the current period

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/accounting/v1beta1/usages/running', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/accounting/v1beta1/usages/running", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/accounting/v1beta1/usages/running HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/accounting/v1beta1/usages/running',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/accounting/v1beta1/usages/running',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /accounting/v1beta1/usages/running

List all the SKUs usages connected to your account. You used them previusely.

Example responses

200 Response

{
  "amount": 0.1,
  "currency": "string",
  "end_time": "2019-08-24T14:15:22Z",
  "start_time": "2019-08-24T14:15:22Z",
  "update_time": "2019-08-24T14:15:22Z",
  "usages": [
    {
      "amount": 0.1,
      "amount_unit": "AMOUNT_UNIT_UNSPECIFIED",
      "cost": {
        "amount": 0.1,
        "currency": "string"
      },
      "description": "string",
      "end_time": "2019-08-24T14:15:22Z",
      "sku_id": "string",
      "start_time": "2019-08-24T14:15:22Z"
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.accounting.v1beta1.ListRunningSKUUsageResponse
default Default An unexpected error response. google.rpc.Status

Returns the information of the requested VAT number

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/accounting/v1beta1/vat/validate', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/accounting/v1beta1/vat/validate", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/accounting/v1beta1/vat/validate HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/accounting/v1beta1/vat/validate',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/accounting/v1beta1/vat/validate',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /accounting/v1beta1/vat/validate

Returns the information of the requeted VAT number.

Parameters

Name In Type Required Description
vat_number query string false The VAT number.

Example responses

200 Response

{
  "company_address": "string",
  "company_name": "string",
  "country_code": "string",
  "is_valid": true,
  "vat_number": "string"
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.accounting.v1beta1.GetVATValidationResponse
500 Internal Server Error Internal Server Error Inline
default Default An unexpected error response. google.rpc.Status

Response Schema

AccountsService

ListAccountsRequest

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/accounts/v1', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/accounts/v1", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/accounts/v1 HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/accounts/v1',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/accounts/v1',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /accounts/v1

Returns list of account matched by input query (if specified) or all within the org.

Parameters

Name In Type Required Description
page_size query integer(int32) false Maximum number of records to return
page_token query string false If this field is not empty then it must contain the next_page_token value

Detailed descriptions

page_token: If this field is not empty then it must contain the next_page_token value returned by a previous call to this method. Using this field causes the method to return additional results from the previous method call.

Example responses

200 Response

{
  "accounts": [
    {
      "email": "string",
      "first_name": "string",
      "id": "string",
      "is_verified": true,
      "last_name": "string"
    }
  ],
  "next_page_token": "string"
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.accounts.v1.ListAccountsResponse
default Default An unexpected error response. google.rpc.Status

CreateAccount

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.post('https://mcls-api.mycujoo.tv/accounts/v1', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/accounts/v1", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/accounts/v1 HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "email": "string",
  "first_name": "string",
  "last_name": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/accounts/v1',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "email": "string",
  "first_name": "string",
  "last_name": "string"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/accounts/v1',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /accounts/v1

Creates account within organization.

Body parameter

{
  "email": "string",
  "first_name": "string",
  "last_name": "string"
}

Parameters

Name In Type Required Description
body body mycujoo.accounts.v1.CreateAccountRequest true none

Example responses

200 Response

{
  "password": "string"
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.accounts.v1.CreateAccountResponse
default Default An unexpected error response. google.rpc.Status

UpdateAccount

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.patch('https://mcls-api.mycujoo.tv/accounts/v1/accounts/{account_id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "https://mcls-api.mycujoo.tv/accounts/v1/accounts/{account_id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PATCH https://mcls-api.mycujoo.tv/accounts/v1/accounts/{account_id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "first_name": "string",
  "last_name": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/accounts/v1/accounts/{account_id}',
{
  method: 'PATCH',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "first_name": "string",
  "last_name": "string"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/accounts/v1/accounts/{account_id}',
{
  method: 'PATCH',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PATCH /accounts/v1/accounts/{account_id}

Updates user account profile data.

Body parameter

{
  "first_name": "string",
  "last_name": "string"
}

Parameters

Name In Type Required Description
account_id path string true none
body body mycujoo.accounts.v1.AccountUpdate true none

Example responses

200 Response

{
  "account": {
    "email": "string",
    "first_name": "string",
    "id": "string",
    "is_verified": true,
    "last_name": "string"
  }
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.accounts.v1.UpdateAccountResponse
default Default An unexpected error response. google.rpc.Status

DeleteBindings

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.post('https://mcls-api.mycujoo.tv/accounts/v1/accounts/{account_id}/delete_bindings', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/accounts/v1/accounts/{account_id}/delete_bindings", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/accounts/v1/accounts/{account_id}/delete_bindings HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/accounts/v1/accounts/{account_id}/delete_bindings',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/accounts/v1/accounts/{account_id}/delete_bindings',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /accounts/v1/accounts/{account_id}/delete_bindings

This method revokes all roles for the given account by deleting all account bindings.

Body parameter

{}

Parameters

Name In Type Required Description
account_id path string true ID of the account to revoke roles from
body body object true none

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.accounts.v1.DeleteBindingsResponse
default Default An unexpected error response. google.rpc.Status

BatchGetAccounts

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.post('https://mcls-api.mycujoo.tv/accounts/v1/batch', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/accounts/v1/batch", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/accounts/v1/batch HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "account_ids": [
    "string"
  ]
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/accounts/v1/batch',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "account_ids": [
    "string"
  ]
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/accounts/v1/batch',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /accounts/v1/batch

Loads account information for multiple accounts.

Body parameter

{
  "account_ids": [
    "string"
  ]
}

Parameters

Name In Type Required Description
body body mycujoo.accounts.v1.BatchGetAccountsRequest true none

Example responses

200 Response

{
  "accounts": [
    {
      "email": "string",
      "first_name": "string",
      "id": "string",
      "is_verified": true,
      "last_name": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.accounts.v1.BatchGetAccountsResponse
default Default An unexpected error response. google.rpc.Status

BatchGetAccountsByEmail

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.post('https://mcls-api.mycujoo.tv/accounts/v1/batch/by_email', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/accounts/v1/batch/by_email", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/accounts/v1/batch/by_email HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "email_addresses": [
    "string"
  ]
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/accounts/v1/batch/by_email',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "email_addresses": [
    "string"
  ]
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/accounts/v1/batch/by_email',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /accounts/v1/batch/by_email

Loads account information for multiple accounts by list of email addresses.

Body parameter

{
  "email_addresses": [
    "string"
  ]
}

Parameters

Name In Type Required Description
body body mycujoo.accounts.v1.BatchGetAccountsByEmailRequest true none

Example responses

200 Response

{
  "accounts": [
    {
      "email": "string",
      "first_name": "string",
      "id": "string",
      "is_verified": true,
      "last_name": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.accounts.v1.BatchGetAccountsByEmailResponse
default Default An unexpected error response. google.rpc.Status

BatchDeleteAccounts

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.post('https://mcls-api.mycujoo.tv/accounts/v1/batch/delete', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/accounts/v1/batch/delete", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/accounts/v1/batch/delete HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "ids": [
    "string"
  ]
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/accounts/v1/batch/delete',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "ids": [
    "string"
  ]
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/accounts/v1/batch/delete',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /accounts/v1/batch/delete

Deletes accounts and removes them from associated IAM policies

Body parameter

{
  "ids": [
    "string"
  ]
}

Parameters

Name In Type Required Description
body body mycujoo.accounts.v1.BatchDeleteAccountsRequest true none

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.accounts.v1.BatchDeleteAccountsResponse
default Default An unexpected error response. google.rpc.Status

ChangePassword

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.post('https://mcls-api.mycujoo.tv/accounts/v1/change_password', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/accounts/v1/change_password", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/accounts/v1/change_password HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "new_password": "string",
  "old_password": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/accounts/v1/change_password',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "new_password": "string",
  "old_password": "string"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/accounts/v1/change_password',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /accounts/v1/change_password

Changes account password using old password and new password.

Body parameter

{
  "new_password": "string",
  "old_password": "string"
}

Parameters

Name In Type Required Description
body body mycujoo.accounts.v1.ChangePasswordRequest true none

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.accounts.v1.ChangePasswordResponse
default Default An unexpected error response. google.rpc.Status

CheckPasswordReset

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

r = requests.post('https://mcls-api.mycujoo.tv/accounts/v1/check_password_reset', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/accounts/v1/check_password_reset", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/accounts/v1/check_password_reset HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "reset_code": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/accounts/v1/check_password_reset',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "reset_code": "string"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/accounts/v1/check_password_reset',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /accounts/v1/check_password_reset

It will check that reset code is still valid and we can proceed with changing password. It generates token that we can use to immediately sign-in to account.

Body parameter

{
  "reset_code": "string"
}

Parameters

Name In Type Required Description
body body mycujoo.accounts.v1.CheckPasswordResetRequest true none

Example responses

200 Response

{
  "token": "string"
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.accounts.v1.CheckPasswordResetResponse
default Default An unexpected error response. google.rpc.Status

InviteAccount

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.post('https://mcls-api.mycujoo.tv/accounts/v1/invitations', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/accounts/v1/invitations", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/accounts/v1/invitations HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "email": "string",
  "first_name": "string",
  "last_name": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/accounts/v1/invitations',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "email": "string",
  "first_name": "string",
  "last_name": "string"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/accounts/v1/invitations',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /accounts/v1/invitations

Basically creates account same as CreateAccount but is meant to be used by unprivileged users so that the endpoint does not return any data like password

Body parameter

{
  "email": "string",
  "first_name": "string",
  "last_name": "string"
}

Parameters

Name In Type Required Description
body body mycujoo.accounts.v1.InviteAccountRequest true none

Example responses

200 Response

{
  "account_id": "string"
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.accounts.v1.InviteAccountResponse
default Default An unexpected error response. google.rpc.Status

GetMyAccount

Code samples

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('https://mcls-api.mycujoo.tv/accounts/v1/myself', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/accounts/v1/myself", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/accounts/v1/myself HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/accounts/v1/myself',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/accounts/v1/myself',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /accounts/v1/myself

Example responses

200 Response

{
  "account": {
    "email": "string",
    "first_name": "string",
    "id": "string",
    "is_verified": true,
    "last_name": "string"
  }
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.accounts.v1.GetMyAccountResponse
default Default An unexpected error response. google.rpc.Status

ResendAccountVerification

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

r = requests.post('https://mcls-api.mycujoo.tv/accounts/v1/resend_account_verification', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/accounts/v1/resend_account_verification", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/accounts/v1/resend_account_verification HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "email": "string",
  "org_id": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/accounts/v1/resend_account_verification',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "email": "string",
  "org_id": "string"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/accounts/v1/resend_account_verification',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /accounts/v1/resend_account_verification

Resends account email verification message.

Body parameter

{
  "email": "string",
  "org_id": "string"
}

Parameters

Name In Type Required Description
body body mycujoo.accounts.v1.ResendAccountVerificationRequest true none

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.accounts.v1.ResendAccountVerificationResponse
default Default An unexpected error response. google.rpc.Status

ResetPassword

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

r = requests.post('https://mcls-api.mycujoo.tv/accounts/v1/reset_password', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/accounts/v1/reset_password", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/accounts/v1/reset_password HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "new_password": "string",
  "reset_code": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/accounts/v1/reset_password',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "new_password": "string",
  "reset_code": "string"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/accounts/v1/reset_password',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /accounts/v1/reset_password

Changes account password without old password from forgot your password page UI.

Body parameter

{
  "new_password": "string",
  "reset_code": "string"
}

Parameters

Name In Type Required Description
body body mycujoo.accounts.v1.ResetPasswordRequest true none

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.accounts.v1.ResetPasswordResponse
default Default An unexpected error response. google.rpc.Status

SendPasswordReset

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

r = requests.post('https://mcls-api.mycujoo.tv/accounts/v1/send_password_reset', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/accounts/v1/send_password_reset", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/accounts/v1/send_password_reset HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "email": "string",
  "org_id": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/accounts/v1/send_password_reset',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "email": "string",
  "org_id": "string"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/accounts/v1/send_password_reset',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /accounts/v1/send_password_reset

Requests password change. It sends an email with a special link if associated account exists.

Body parameter

{
  "email": "string",
  "org_id": "string"
}

Parameters

Name In Type Required Description
body body mycujoo.accounts.v1.SendPasswordResetRequest true none

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.accounts.v1.SendPasswordResetResponse
default Default An unexpected error response. google.rpc.Status

VerifyAccountEmail

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

r = requests.post('https://mcls-api.mycujoo.tv/accounts/v1/verify_account', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/accounts/v1/verify_account", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/accounts/v1/verify_account HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "account_id": "string",
  "org_id": "string",
  "verification_code": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/accounts/v1/verify_account',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "account_id": "string",
  "org_id": "string",
  "verification_code": "string"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/accounts/v1/verify_account',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /accounts/v1/verify_account

Marks that account email address is verified.

Body parameter

{
  "account_id": "string",
  "org_id": "string",
  "verification_code": "string"
}

Parameters

Name In Type Required Description
body body mycujoo.accounts.v1.VerifyAccountEmailRequest true none

Example responses

200 Response

{
  "token": "string"
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.accounts.v1.VerifyAccountEmailResponse
default Default An unexpected error response. google.rpc.Status

GetAccount

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/accounts/v1/{account_id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/accounts/v1/{account_id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/accounts/v1/{account_id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/accounts/v1/{account_id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/accounts/v1/{account_id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /accounts/v1/{account_id}

In order to request information about currently logged in account you can use value myself for the account_id

Parameters

Name In Type Required Description
account_id path string true none

Example responses

200 Response

{
  "account": {
    "email": "string",
    "first_name": "string",
    "id": "string",
    "is_verified": true,
    "last_name": "string"
  }
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.accounts.v1.GetAccountResponse
default Default An unexpected error response. google.rpc.Status

ActionsService

Lists actions

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/actions/v1beta1', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/actions/v1beta1", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/actions/v1beta1 HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/actions/v1beta1',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/actions/v1beta1',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /actions/v1beta1

List all the actions

Parameters

Name In Type Required Description
service_id query string false Filter list by service ID
category_id query string false Filter list by category ID
page_size query integer(int32) false Maximum number of records to return
page_token query string false The pagination token in the List request.

Example responses

200 Response

{
  "items": [
    {
      "category_id": "string",
      "description": "string",
      "icon_url": "string",
      "id": "string",
      "is_active": true,
      "service_id": "string",
      "title": "string"
    }
  ],
  "next_page_token": "string"
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.actions.v1beta1.ListActionsResponse
default Default An unexpected error response. google.rpc.Status

Lists action calls

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/actions/v1beta1/calls', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/actions/v1beta1/calls", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/actions/v1beta1/calls HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/actions/v1beta1/calls',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/actions/v1beta1/calls',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /actions/v1beta1/calls

List all action calls

Parameters

Name In Type Required Description
group_id query string false none

Example responses

200 Response

{
  "items": [
    {
      "configuration_id": "string",
      "group_id": "string",
      "id": "string",
      "request_data": {
        "data": {},
        "id": "string"
      },
      "response_data": {
        "data": {},
        "id": "string"
      },
      "state": "ACTION_CALL_STATE_UNSPECIFIED"
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.actions.v1beta1.ListActionCallsResponse
default Default An unexpected error response. google.rpc.Status

Returns a single action call

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/actions/v1beta1/calls/{id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/actions/v1beta1/calls/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/actions/v1beta1/calls/{id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/actions/v1beta1/calls/{id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/actions/v1beta1/calls/{id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /actions/v1beta1/calls/{id}

Returns a single action call.

Parameters

Name In Type Required Description
id path string true none

Example responses

200 Response

{
  "action_call": {
    "configuration_id": "string",
    "group_id": "string",
    "id": "string",
    "request_data": {
      "data": {},
      "id": "string"
    },
    "response_data": {
      "data": {},
      "id": "string"
    },
    "state": "ACTION_CALL_STATE_UNSPECIFIED"
  }
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.actions.v1beta1.GetActionCallResponse
400 Bad Request Bad input parameters Inline
500 Internal Server Error Internal Server Error Inline
default Default An unexpected error response. google.rpc.Status

Response Schema

Updates an action call

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.patch('https://mcls-api.mycujoo.tv/actions/v1beta1/calls/{id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "https://mcls-api.mycujoo.tv/actions/v1beta1/calls/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PATCH https://mcls-api.mycujoo.tv/actions/v1beta1/calls/{id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "data": {}
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/actions/v1beta1/calls/{id}',
{
  method: 'PATCH',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "data": {}
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/actions/v1beta1/calls/{id}',
{
  method: 'PATCH',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PATCH /actions/v1beta1/calls/{id}

Updates an action call.

Body parameter

{
  "data": {}
}

Parameters

Name In Type Required Description
id path string true none
body body mycujoo.actions.v1beta1.UpdateActionCallRequestFields true Fields to update

Example responses

200 Response

{
  "action_call": {
    "configuration_id": "string",
    "group_id": "string",
    "id": "string",
    "request_data": {
      "data": {},
      "id": "string"
    },
    "response_data": {
      "data": {},
      "id": "string"
    },
    "state": "ACTION_CALL_STATE_UNSPECIFIED"
  }
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.actions.v1beta1.UpdateActionCallResponse
400 Bad Request Bad input parameters Inline
500 Internal Server Error Internal Server Error Inline
default Default An unexpected error response. google.rpc.Status

Response Schema

Lists action categories

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/actions/v1beta1/categories', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/actions/v1beta1/categories", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/actions/v1beta1/categories HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/actions/v1beta1/categories',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/actions/v1beta1/categories',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /actions/v1beta1/categories

List all the available categories of actions

Parameters

Name In Type Required Description
page_size query integer(int32) false Maximum number of records to return
page_token query string false The pagination token in the List request.
hide_empty query boolean false Whether to filter out categories with no available actions

Example responses

200 Response

{
  "items": [
    {
      "description": "string",
      "id": "string",
      "menu_title": "string",
      "title": "string"
    }
  ],
  "next_page_token": "string"
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.actions.v1beta1.ListActionCategoriesResponse
default Default An unexpected error response. google.rpc.Status

Lists action configurations

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/actions/v1beta1/configurations', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/actions/v1beta1/configurations", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/actions/v1beta1/configurations HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/actions/v1beta1/configurations',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/actions/v1beta1/configurations',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /actions/v1beta1/configurations

List all the action configurations of a group

Parameters

Name In Type Required Description
group_id query string false none

Example responses

200 Response

{
  "items": [
    {
      "action_id": "string",
      "action_title": "string",
      "group_id": "string",
      "id": "string",
      "order": 0,
      "title": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.actions.v1beta1.ListActionConfigurationsResponse
default Default An unexpected error response. google.rpc.Status

Creates an action configuration

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.post('https://mcls-api.mycujoo.tv/actions/v1beta1/configurations', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/actions/v1beta1/configurations", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/actions/v1beta1/configurations HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "action_id": "string",
  "fields": [
    {
      "bool_value": true,
      "datetime_value": "2019-08-24T14:15:22Z",
      "field": "string",
      "float_value": 0.1,
      "number_value": "string",
      "string_value": "string"
    }
  ],
  "group_id": "string",
  "title": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/actions/v1beta1/configurations',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "action_id": "string",
  "fields": [
    {
      "bool_value": true,
      "datetime_value": "2019-08-24T14:15:22Z",
      "field": "string",
      "float_value": 0.1,
      "number_value": "string",
      "string_value": "string"
    }
  ],
  "group_id": "string",
  "title": "string"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/actions/v1beta1/configurations',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /actions/v1beta1/configurations

Creates a new action configuration.

Body parameter

{
  "action_id": "string",
  "fields": [
    {
      "bool_value": true,
      "datetime_value": "2019-08-24T14:15:22Z",
      "field": "string",
      "float_value": 0.1,
      "number_value": "string",
      "string_value": "string"
    }
  ],
  "group_id": "string",
  "title": "string"
}

Parameters

Name In Type Required Description
body body mycujoo.actions.v1beta1.CreateActionConfigurationRequest true none

Example responses

200 Response

{
  "action_configuration": {
    "action_id": "string",
    "fields": [
      {
        "bool_value": true,
        "datetime_value": "2019-08-24T14:15:22Z",
        "field": "string",
        "float_value": 0.1,
        "number_value": "string",
        "string_value": "string"
      }
    ],
    "group_id": "string",
    "id": "string",
    "order": 0,
    "title": "string"
  }
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.actions.v1beta1.CreateActionConfigurationResponse
400 Bad Request Bad input parameters Inline
500 Internal Server Error Internal Server Error Inline
default Default An unexpected error response. google.rpc.Status

Response Schema

Returns a single action configuration

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/actions/v1beta1/configurations/{id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/actions/v1beta1/configurations/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/actions/v1beta1/configurations/{id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/actions/v1beta1/configurations/{id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/actions/v1beta1/configurations/{id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /actions/v1beta1/configurations/{id}

Returns a single action type.

Parameters

Name In Type Required Description
id path string true none

Example responses

200 Response

{
  "action_configuration": {
    "action_id": "string",
    "fields": [
      {
        "bool_value": true,
        "datetime_value": "2019-08-24T14:15:22Z",
        "field": "string",
        "float_value": 0.1,
        "number_value": "string",
        "string_value": "string"
      }
    ],
    "group_id": "string",
    "id": "string",
    "order": 0,
    "title": "string"
  }
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.actions.v1beta1.GetActionConfigurationResponse
400 Bad Request Bad input parameters Inline
500 Internal Server Error Internal Server Error Inline
default Default An unexpected error response. google.rpc.Status

Response Schema

Deletes an action configuration

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.delete('https://mcls-api.mycujoo.tv/actions/v1beta1/configurations/{id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "https://mcls-api.mycujoo.tv/actions/v1beta1/configurations/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE https://mcls-api.mycujoo.tv/actions/v1beta1/configurations/{id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/actions/v1beta1/configurations/{id}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/actions/v1beta1/configurations/{id}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

DELETE /actions/v1beta1/configurations/{id}

Deletes an action configuration.

Parameters

Name In Type Required Description
id path string true none

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.actions.v1beta1.DeleteActionConfigurationResponse
500 Internal Server Error Internal Server Error Inline
default Default An unexpected error response. google.rpc.Status

Response Schema

Updates an action configuration

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.patch('https://mcls-api.mycujoo.tv/actions/v1beta1/configurations/{id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "https://mcls-api.mycujoo.tv/actions/v1beta1/configurations/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PATCH https://mcls-api.mycujoo.tv/actions/v1beta1/configurations/{id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "fields": [
    {
      "bool_value": true,
      "datetime_value": "2019-08-24T14:15:22Z",
      "field": "string",
      "float_value": 0.1,
      "number_value": "string",
      "string_value": "string"
    }
  ],
  "order": 0,
  "title": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/actions/v1beta1/configurations/{id}',
{
  method: 'PATCH',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "fields": [
    {
      "bool_value": true,
      "datetime_value": "2019-08-24T14:15:22Z",
      "field": "string",
      "float_value": 0.1,
      "number_value": "string",
      "string_value": "string"
    }
  ],
  "order": 0,
  "title": "string"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/actions/v1beta1/configurations/{id}',
{
  method: 'PATCH',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PATCH /actions/v1beta1/configurations/{id}

Updates an action configuration.

Body parameter

{
  "fields": [
    {
      "bool_value": true,
      "datetime_value": "2019-08-24T14:15:22Z",
      "field": "string",
      "float_value": 0.1,
      "number_value": "string",
      "string_value": "string"
    }
  ],
  "order": 0,
  "title": "string"
}

Parameters

Name In Type Required Description
id path string true none
body body mycujoo.actions.v1beta1.UpdateActionConfigurationRequestFields true Fields to update

Example responses

200 Response

{
  "action_configuration": {
    "action_id": "string",
    "fields": [
      {
        "bool_value": true,
        "datetime_value": "2019-08-24T14:15:22Z",
        "field": "string",
        "float_value": 0.1,
        "number_value": "string",
        "string_value": "string"
      }
    ],
    "group_id": "string",
    "id": "string",
    "order": 0,
    "title": "string"
  }
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.actions.v1beta1.UpdateActionConfigurationResponse
400 Bad Request Bad input parameters Inline
500 Internal Server Error Internal Server Error Inline
default Default An unexpected error response. google.rpc.Status

Response Schema

Returns a single action

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/actions/v1beta1/{id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/actions/v1beta1/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/actions/v1beta1/{id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/actions/v1beta1/{id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/actions/v1beta1/{id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /actions/v1beta1/{id}

Returns a single action

Parameters

Name In Type Required Description
id path string true none

Example responses

200 Response

{
  "action": {
    "action_fields": [
      {
        "bool_value": true,
        "datetime_value": "2019-08-24T14:15:22Z",
        "float_value": 0.1,
        "is_configurable": true,
        "is_required": true,
        "label": "string",
        "name": "string",
        "no_default_value": true,
        "number_value": "string",
        "string_value": "string",
        "validators": [
          {
            "max": 0,
            "min": 0,
            "regex": "string"
          }
        ],
        "value_options": [
          {
            "bool_value": true,
            "datetime_value": "2019-08-24T14:15:22Z",
            "float_value": 0.1,
            "label": "string",
            "number_value": "string",
            "string_value": "string"
          }
        ],
        "value_type": "VALUE_TYPE_UNSPECIFIED"
      }
    ],
    "category_id": "string",
    "description": "string",
    "icon_url": "string",
    "id": "string",
    "is_active": true,
    "request_schema_id": "string",
    "request_topic": "string",
    "response_schema_id": "string",
    "response_topic": "string",
    "service_id": "string",
    "title": "string"
  }
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.actions.v1beta1.GetActionResponse
400 Bad Request Bad input parameters Inline
500 Internal Server Error Internal Server Error Inline
default Default An unexpected error response. google.rpc.Status

Response Schema

StreamingAnalyticsService

Get consumption analytics for all streams in a project

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/analytics/v1/consumption/projects/{project_id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/analytics/v1/consumption/projects/{project_id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/analytics/v1/consumption/projects/{project_id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/analytics/v1/consumption/projects/{project_id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/analytics/v1/consumption/projects/{project_id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /analytics/v1/consumption/projects/{project_id}

Get consumption analytics for all streams in a project.

Parameters

Name In Type Required Description
project_id path string true example: abc123
interval.start_time query string(date-time) false Optional. Inclusive start of the interval.
interval.end_time query string(date-time) false Optional. Exclusive end of the interval.
filter query string false Filters the result by several dimensions using KQL

Detailed descriptions

interval.start_time: Optional. Inclusive start of the interval.

If specified, a Timestamp matching this interval will have to be the same or after the start.

interval.end_time: Optional. Exclusive end of the interval.

If specified, a Timestamp matching this interval will have to be before the end.

filter: Filters the result by several dimensions using KQL example: city:(London OR Manchester) isp:Vodafone " Possible filters: - identity_id - device_type - isp - connection_type - country_code - region - state_province - city - os - cdn

Example responses

200 Response

{
  "average_watch_time": {
    "content_type_watch_time": [
      {
        "content_type": "CONTENT_TYPE_UNSPECIFIED",
        "minutes": 0.1
      }
    ],
    "total_minutes": 0.1
  },
  "project_id": "string",
  "unique_users": {
    "content_type_users": [
      {
        "content_type": "CONTENT_TYPE_UNSPECIFIED",
        "users_count": 0
      }
    ],
    "total_users": 0
  },
  "watch_time": {
    "content_type_watch_time": [
      {
        "content_type": "CONTENT_TYPE_UNSPECIFIED",
        "minutes": 0.1
      }
    ],
    "total_minutes": 0.1
  }
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.analytics.v1.GetProjectConsumptionStatsResponse
default Default An unexpected error response. google.rpc.Status

Get the average playtime timeseries for a specific project

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/analytics/v1/consumption/projects/{project_id}/average-playtime', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/analytics/v1/consumption/projects/{project_id}/average-playtime", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/analytics/v1/consumption/projects/{project_id}/average-playtime HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/analytics/v1/consumption/projects/{project_id}/average-playtime',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/analytics/v1/consumption/projects/{project_id}/average-playtime',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /analytics/v1/consumption/projects/{project_id}/average-playtime

Get the average playtime timeseries for a specific project

Parameters

Name In Type Required Description
project_id path string true example: elevendata
time_step query string false example: TIME_STEP_DAY
interval.start_time query string(date-time) false Optional. Inclusive start of the interval.
interval.end_time query string(date-time) false Optional. Exclusive end of the interval.
filter query string false Filters the result by several dimensions using KQL

Detailed descriptions

interval.start_time: Optional. Inclusive start of the interval.

If specified, a Timestamp matching this interval will have to be the same or after the start.

interval.end_time: Optional. Exclusive end of the interval.

If specified, a Timestamp matching this interval will have to be before the end.

filter: Filters the result by several dimensions using KQL example: city:(London OR Manchester) isp:Vodafone " Possible filters: - identity_id - device_type - isp - connection_type - country_code - region - state_province - city - os - cdn

Enumerated Values

Parameter Value
time_step TIME_STEP_UNSPECIFIED
time_step TIME_STEP_MINUTE
time_step TIME_STEP_HOUR
time_step TIME_STEP_DAY
time_step TIME_STEP_MONTH
time_step TIME_STEP_YEAR

Example responses

200 Response

{
  "average_playtime_points": [
    {
      "average_playtime": 0.1,
      "time": "2019-08-24T14:15:22Z"
    }
  ],
  "time_step": "TIME_STEP_UNSPECIFIED"
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.analytics.v1.GetProjectAveragePlaytimeTimeSeriesResponse
default Default An unexpected error response. google.rpc.Status

List stream stats summary for a project

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/analytics/v1/consumption/projects/{project_id}/streams', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/analytics/v1/consumption/projects/{project_id}/streams", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/analytics/v1/consumption/projects/{project_id}/streams HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/analytics/v1/consumption/projects/{project_id}/streams',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/analytics/v1/consumption/projects/{project_id}/streams',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /analytics/v1/consumption/projects/{project_id}/streams

List stream stats summary for a project

Parameters

Name In Type Required Description
project_id path string true example: elevendata
page_size query integer(int32) false The maximum number of streams to return.
order_by query string false Order of the results.
page_token query string false A page token, received from a previous ListStreamStatSummaryRequest call.
interval.start_time query string(date-time) false Optional. Inclusive start of the interval.
interval.end_time query string(date-time) false Optional. Exclusive end of the interval.
filter query string false Filters the result by several dimensions using KQL

Detailed descriptions

page_size: The maximum number of streams to return. If unspecified, at most 20 streams will be returned.

order_by: Order of the results.

The possible ordering columns are: total_plays, total_playtime, unique_users, title, average_buffer_ratio_live, average_buffer_ratio_vod, average_play_time For example: total_plays desc (AIP-132)

page_token: A page token, received from a previous ListStreamStatSummaryRequest call. Provide this to retrieve the subsequent page.

When paginating, all other parameters provided to ListStreamStatSummaryRequest must match the call that provided the page token.

interval.start_time: Optional. Inclusive start of the interval.

If specified, a Timestamp matching this interval will have to be the same or after the start.

interval.end_time: Optional. Exclusive end of the interval.

If specified, a Timestamp matching this interval will have to be before the end.

filter: Filters the result by several dimensions using KQL example: city:(London OR Manchester) isp:Vodafone " Possible filters: - identity_id - device_type - isp - connection_type - country_code - region - state_province - city - os - cdn

Example responses

200 Response

{
  "next_page_token": "string",
  "streams": [
    {
      "average_live_buffer_ratio": 0.1,
      "average_play_time": 0.1,
      "average_vod_buffer_ratio": 0.1,
      "stream_id": "string",
      "title": "string",
      "total_plays": 0,
      "total_playtime": 0.1,
      "total_users": 0
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.analytics.v1.ListStreamStatSummariesResponse
default Default An unexpected error response. google.rpc.Status

Get the total plays timeseries for a specific project

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/analytics/v1/consumption/projects/{project_id}/total-plays', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/analytics/v1/consumption/projects/{project_id}/total-plays", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/analytics/v1/consumption/projects/{project_id}/total-plays HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/analytics/v1/consumption/projects/{project_id}/total-plays',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/analytics/v1/consumption/projects/{project_id}/total-plays',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /analytics/v1/consumption/projects/{project_id}/total-plays

Get the total plays timeseries for a specific project

Parameters

Name In Type Required Description
project_id path string true example: elevendata
time_step query string false example: TIME_STEP_DAY
interval.start_time query string(date-time) false Optional. Inclusive start of the interval.
interval.end_time query string(date-time) false Optional. Exclusive end of the interval.
filter query string false Filters the result by several dimensions using KQL

Detailed descriptions

interval.start_time: Optional. Inclusive start of the interval.

If specified, a Timestamp matching this interval will have to be the same or after the start.

interval.end_time: Optional. Exclusive end of the interval.

If specified, a Timestamp matching this interval will have to be before the end.

filter: Filters the result by several dimensions using KQL example: city:(London OR Manchester) isp:Vodafone " Possible filters: - identity_id - device_type - isp - connection_type - country_code - region - state_province - city - os - cdn

Enumerated Values

Parameter Value
time_step TIME_STEP_UNSPECIFIED
time_step TIME_STEP_MINUTE
time_step TIME_STEP_HOUR
time_step TIME_STEP_DAY
time_step TIME_STEP_MONTH
time_step TIME_STEP_YEAR

Example responses

200 Response

{
  "time_step": "TIME_STEP_UNSPECIFIED",
  "total_plays_points": [
    {
      "plays": 0,
      "time": "2019-08-24T14:15:22Z"
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.analytics.v1.GetProjectTotalPlaysTimeSeriesResponse
default Default An unexpected error response. google.rpc.Status

Get the total playtime timeseries for a specific project

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/analytics/v1/consumption/projects/{project_id}/total-playtime', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/analytics/v1/consumption/projects/{project_id}/total-playtime", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/analytics/v1/consumption/projects/{project_id}/total-playtime HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/analytics/v1/consumption/projects/{project_id}/total-playtime',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/analytics/v1/consumption/projects/{project_id}/total-playtime',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /analytics/v1/consumption/projects/{project_id}/total-playtime

Get the total playtime timeseries for a specific project

Parameters

Name In Type Required Description
project_id path string true example: elevendata
time_step query string false example: TIME_STEP_DAY
interval.start_time query string(date-time) false Optional. Inclusive start of the interval.
interval.end_time query string(date-time) false Optional. Exclusive end of the interval.
filter query string false Filters the result by several dimensions using KQL

Detailed descriptions

interval.start_time: Optional. Inclusive start of the interval.

If specified, a Timestamp matching this interval will have to be the same or after the start.

interval.end_time: Optional. Exclusive end of the interval.

If specified, a Timestamp matching this interval will have to be before the end.

filter: Filters the result by several dimensions using KQL example: city:(London OR Manchester) isp:Vodafone " Possible filters: - identity_id - device_type - isp - connection_type - country_code - region - state_province - city - os - cdn

Enumerated Values

Parameter Value
time_step TIME_STEP_UNSPECIFIED
time_step TIME_STEP_MINUTE
time_step TIME_STEP_HOUR
time_step TIME_STEP_DAY
time_step TIME_STEP_MONTH
time_step TIME_STEP_YEAR

Example responses

200 Response

{
  "time_step": "TIME_STEP_UNSPECIFIED",
  "total_playtime_points": [
    {
      "time": "2019-08-24T14:15:22Z",
      "total_playtime": 0.1
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.analytics.v1.GetProjectTotalPlaytimeTimeSeriesResponse
default Default An unexpected error response. google.rpc.Status

Get the unique users time series for a specific project

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/analytics/v1/consumption/projects/{project_id}/unique-users', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/analytics/v1/consumption/projects/{project_id}/unique-users", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/analytics/v1/consumption/projects/{project_id}/unique-users HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/analytics/v1/consumption/projects/{project_id}/unique-users',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/analytics/v1/consumption/projects/{project_id}/unique-users',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /analytics/v1/consumption/projects/{project_id}/unique-users

Get the unique users time series for a specific project

Parameters

Name In Type Required Description
project_id path string true example: elevendata
time_step query string false example: TIME_STEP_DAY
interval.start_time query string(date-time) false Optional. Inclusive start of the interval.
interval.end_time query string(date-time) false Optional. Exclusive end of the interval.
filter query string false Filters the result by several dimensions using KQL

Detailed descriptions

interval.start_time: Optional. Inclusive start of the interval.

If specified, a Timestamp matching this interval will have to be the same or after the start.

interval.end_time: Optional. Exclusive end of the interval.

If specified, a Timestamp matching this interval will have to be before the end.

filter: Filters the result by several dimensions using KQL example: city:(London OR Manchester) isp:Vodafone " Possible filters: - identity_id - device_type - isp - connection_type - country_code - region - state_province - city - os - cdn

Enumerated Values

Parameter Value
time_step TIME_STEP_UNSPECIFIED
time_step TIME_STEP_MINUTE
time_step TIME_STEP_HOUR
time_step TIME_STEP_DAY
time_step TIME_STEP_MONTH
time_step TIME_STEP_YEAR

Example responses

200 Response

{
  "time_step": "TIME_STEP_UNSPECIFIED",
  "unique_users_points": [
    {
      "time": "2019-08-24T14:15:22Z",
      "unique_users": 0
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.analytics.v1.GetProjectUniqueUsersTimeSeriesResponse
default Default An unexpected error response. google.rpc.Status

List watch events from a project

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/analytics/v1/consumption/projects/{project_id}/watch-events', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/analytics/v1/consumption/projects/{project_id}/watch-events", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/analytics/v1/consumption/projects/{project_id}/watch-events HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/analytics/v1/consumption/projects/{project_id}/watch-events',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/analytics/v1/consumption/projects/{project_id}/watch-events',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /analytics/v1/consumption/projects/{project_id}/watch-events

List watch events for a project

Parameters

Name In Type Required Description
project_id path string true example: eleven-italy
filter query string false Filters the list of the result using KQL
page_size query integer(int32) false The maximum number of events to return.
page_token query string false A page token, received from a previous ListWatchEventsRequest call.
interval.start_time query string(date-time) false Optional. Inclusive start of the interval.
interval.end_time query string(date-time) false Optional. Exclusive end of the interval.
order_by query string false Order of the results.

Detailed descriptions

filter: Filters the list of the result using KQL example: stream_id:cl1w6bavs0peo0134kflbwkc7 event_type:(PLAY OR STOP) identity_id:"45da7744-ced8-47e1-8caf-09a01616647d" Possible filters: - event_type - identity_id - device_type - isp - connection_type - country_code - region - state_province - city - os - cdn

page_size: The maximum number of events to return. If unspecified, at most 10 watch events will be returned.

page_token: A page token, received from a previous ListWatchEventsRequest call. Provide this to retrieve the subsequent page.

interval.start_time: Optional. Inclusive start of the interval.

If specified, a Timestamp matching this interval will have to be the same or after the start.

interval.end_time: Optional. Exclusive end of the interval.

If specified, a Timestamp matching this interval will have to be before the end.

order_by: Order of the results. For example: event_time asc If not present the default ordering is event_time desc

Example responses

200 Response

{
  "next_page_token": "string",
  "watch_events": [
    {
      "cdn": "string",
      "city": "string",
      "connection_type": "string",
      "country_code": "string",
      "device_name": "string",
      "effective_time": "string",
      "event_time": "2019-08-24T14:15:22Z",
      "event_type": "string",
      "happiness_score": 0.1,
      "has_error": true,
      "identity_id": "string",
      "ip": "string",
      "isp": "string",
      "session_id": "string",
      "stream_id": "string",
      "title": "string",
      "type_view": "CONTENT_TYPE_UNSPECIFIED",
      "watch_duration": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.analytics.v1.ListWatchEventsResponse
default Default An unexpected error response. google.rpc.Status

Get consumption analytics for a single stream

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/analytics/v1/consumption/streams/{stream_id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/analytics/v1/consumption/streams/{stream_id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/analytics/v1/consumption/streams/{stream_id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/analytics/v1/consumption/streams/{stream_id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/analytics/v1/consumption/streams/{stream_id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /analytics/v1/consumption/streams/{stream_id}

Get consumption analytics for a single stream.

Parameters

Name In Type Required Description
stream_id path string true example: ck8u9fwwu1wtg0hewiqz3we6j
interval.start_time query string(date-time) false Optional. Inclusive start of the interval.
interval.end_time query string(date-time) false Optional. Exclusive end of the interval.
filter query string false Filters the result by several dimensions using KQL

Detailed descriptions

interval.start_time: Optional. Inclusive start of the interval.

If specified, a Timestamp matching this interval will have to be the same or after the start.

interval.end_time: Optional. Exclusive end of the interval.

If specified, a Timestamp matching this interval will have to be before the end.

filter: Filters the result by several dimensions using KQL example: city:(London OR Manchester) isp:Vodafone " Possible filters: - identity_id - device_type - isp - connection_type - country_code - region - state_province - city - os - cdn

Example responses

200 Response

{
  "average_watch_time": {
    "content_type_watch_time": [
      {
        "content_type": "CONTENT_TYPE_UNSPECIFIED",
        "minutes": 0.1
      }
    ],
    "total_minutes": 0.1
  },
  "stream_id": "string",
  "unique_users": {
    "content_type_users": [
      {
        "content_type": "CONTENT_TYPE_UNSPECIFIED",
        "users_count": 0
      }
    ],
    "total_users": 0
  },
  "watch_time": {
    "content_type_watch_time": [
      {
        "content_type": "CONTENT_TYPE_UNSPECIFIED",
        "minutes": 0.1
      }
    ],
    "total_minutes": 0.1
  }
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.analytics.v1.GetStreamConsumptionStatsResponse
default Default An unexpected error response. google.rpc.Status

Get the media source stats snapshots in batch

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/analytics/v1/media_sources/stats-snapshot', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/analytics/v1/media_sources/stats-snapshot", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/analytics/v1/media_sources/stats-snapshot HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/analytics/v1/media_sources/stats-snapshot',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/analytics/v1/media_sources/stats-snapshot',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /analytics/v1/media_sources/stats-snapshot

Get the media source stats snapshots in batch.

Parameters

Name In Type Required Description
media_source_ids query array[string] false example: ck8u9fwwu1wtg0hewiqz3we6j

Example responses

200 Response

{
  "snapshots": [
    {
      "media_source_id": "string",
      "snapshot": {
        "audio_bit_rate": 0,
        "bit_rate": 0,
        "connection_count": 0,
        "frame_rate": 0.1,
        "key_frame_consistent": true,
        "key_frame_interval": 0.1,
        "time": "2019-08-24T14:15:22Z",
        "video_height": 0
      }
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.analytics.v1.GetMediaSourceStatsSnapshotBatchResponse
default Default An unexpected error response. google.rpc.Status

Get stats time series for a media source

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/analytics/v1/media_sources/{media_source_id}/stats', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/analytics/v1/media_sources/{media_source_id}/stats", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/analytics/v1/media_sources/{media_source_id}/stats HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/analytics/v1/media_sources/{media_source_id}/stats',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/analytics/v1/media_sources/{media_source_id}/stats',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /analytics/v1/media_sources/{media_source_id}/stats

Get stats time series for a media source.

Parameters

Name In Type Required Description
media_source_id path string true example: ck8u9fwwu1wtg0hewiqz3we6j
interval.start_time query string(date-time) false Optional. Inclusive start of the interval.
interval.end_time query string(date-time) false Optional. Exclusive end of the interval.

Detailed descriptions

interval.start_time: Optional. Inclusive start of the interval.

If specified, a Timestamp matching this interval will have to be the same or after the start.

interval.end_time: Optional. Exclusive end of the interval.

If specified, a Timestamp matching this interval will have to be before the end.

Example responses

200 Response

{
  "time_series": [
    {
      "audio_bit_rate": 0,
      "bit_rate": 0,
      "connection_count": 0,
      "frame_rate": 0.1,
      "key_frame_consistent": true,
      "key_frame_interval": 0.1,
      "time": "2019-08-24T14:15:22Z",
      "video_height": 0
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.analytics.v1.GetMediaSourceStatsTimeSeriesResponse
default Default An unexpected error response. google.rpc.Status

Get the stats snapshot for a media source

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/analytics/v1/media_sources/{media_source_id}/stats-snapshot', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/analytics/v1/media_sources/{media_source_id}/stats-snapshot", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/analytics/v1/media_sources/{media_source_id}/stats-snapshot HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/analytics/v1/media_sources/{media_source_id}/stats-snapshot',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/analytics/v1/media_sources/{media_source_id}/stats-snapshot',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /analytics/v1/media_sources/{media_source_id}/stats-snapshot

Get the stats snapshot for a media source.

Parameters

Name In Type Required Description
media_source_id path string true example: ck8u9fwwu1wtg0hewiqz3we6j

Example responses

200 Response

{
  "snapshot": {
    "audio_bit_rate": 0,
    "bit_rate": 0,
    "connection_count": 0,
    "frame_rate": 0.1,
    "key_frame_consistent": true,
    "key_frame_interval": 0.1,
    "time": "2019-08-24T14:15:22Z",
    "video_height": 0
  }
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.analytics.v1.GetMediaSourceStatsSnapshotResponse
default Default An unexpected error response. google.rpc.Status

Get the video stats snapshots in batch

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/analytics/v1/streams/video-stats-snapshot', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/analytics/v1/streams/video-stats-snapshot", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/analytics/v1/streams/video-stats-snapshot HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/analytics/v1/streams/video-stats-snapshot',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/analytics/v1/streams/video-stats-snapshot',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /analytics/v1/streams/video-stats-snapshot

Get the video stats snapshots in batch.

Parameters

Name In Type Required Description
stream_ids query array[string] false example: ck8u9fwwu1wtg0hewiqz3we6j

Example responses

200 Response

{
  "snapshots": [
    {
      "snapshot": {
        "audio_bit_rate": 0,
        "bit_rate": 0,
        "connection_count": 0,
        "frame_rate": 0.1,
        "key_frame_consistent": true,
        "key_frame_interval": 0.1,
        "resolution": 0,
        "time": "2019-08-24T14:15:22Z"
      },
      "stream_id": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.analytics.v1.GetVideoStatsSnapshotBatchResponse
default Default An unexpected error response. google.rpc.Status

Get all stats for a stream

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/analytics/v1/streams/{stream_id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/analytics/v1/streams/{stream_id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/analytics/v1/streams/{stream_id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/analytics/v1/streams/{stream_id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/analytics/v1/streams/{stream_id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /analytics/v1/streams/{stream_id}

Get all stats for a stream.

Parameters

Name In Type Required Description
stream_id path string true example: ck8u9fwwu1wtg0hewiqz3we6j
interval.start_time query string(date-time) false Optional. Inclusive start of the interval.
interval.end_time query string(date-time) false Optional. Exclusive end of the interval.
filter query string false Filters the result by several dimensions using KQL

Detailed descriptions

interval.start_time: Optional. Inclusive start of the interval.

If specified, a Timestamp matching this interval will have to be the same or after the start.

interval.end_time: Optional. Exclusive end of the interval.

If specified, a Timestamp matching this interval will have to be before the end.

filter: Filters the result by several dimensions using KQL example: city:(London OR Manchester) isp:Vodafone " Possible filters: - identity_id - device_type - isp - connection_type - country_code - region - state_province - city - os - cdn

Example responses

200 Response

{
  "buffer_ratio_time_series": [
    {
      "content_type": "CONTENT_TYPE_UNSPECIFIED",
      "points": [
        {
          "ratio": 0.1,
          "time": "2019-08-24T14:15:22Z"
        }
      ]
    }
  ],
  "concurrent_plays_time_series": [
    {
      "plays": 0,
      "time": "2019-08-24T14:15:22Z"
    }
  ],
  "total_users_time_series": [
    {
      "content_type": "CONTENT_TYPE_UNSPECIFIED",
      "users_count": 0
    }
  ],
  "video_stats_time_series": [
    {
      "audio_bit_rate": 0,
      "bit_rate": 0,
      "connection_count": 0,
      "frame_rate": 0.1,
      "key_frame_consistent": true,
      "key_frame_interval": 0.1,
      "resolution": 0,
      "time": "2019-08-24T14:15:22Z"
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.analytics.v1.GetStreamStatsResponse
default Default An unexpected error response. google.rpc.Status

List activity logs for a stream

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/analytics/v1/streams/{stream_id}/activities', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/analytics/v1/streams/{stream_id}/activities", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/analytics/v1/streams/{stream_id}/activities HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/analytics/v1/streams/{stream_id}/activities',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/analytics/v1/streams/{stream_id}/activities',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /analytics/v1/streams/{stream_id}/activities

List activity logs for a stream.

Parameters

Name In Type Required Description
stream_id path string true example: ck8u9fwwu1wtg0hewiqz3we6j
filter query string false Filters the list of the result using KQL
page_size query integer(int32) false The maximum number of activities to return. The service may return fewer than
page_token query string false A page token, received from a previous ListStreamActivityLogs call.

Detailed descriptions

filter: Filters the list of the result using KQL example: create_time>="2023-04-26T16:23:13Z" create_time<"2023-04-26T16:33:13Z" source:thumbnails

page_size: The maximum number of activities to return. The service may return fewer than this value. If unspecified, at most 50 activities will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.

page_token: A page token, received from a previous ListStreamActivityLogs call. Provide this to retrieve the subsequent page.

When paginating, all other parameters provided to ListStreamActivityLogs must match the call that provided the page token.

Example responses

200 Response

{
  "activities": [
    {
      "create_time": "2019-08-24T14:15:22Z",
      "description": "string",
      "id": "string",
      "name": "string",
      "source": "string"
    }
  ],
  "next_page_token": "string"
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.analytics.v1.ListStreamActivityLogsResponse
default Default An unexpected error response. google.rpc.Status

Get buffer ratio time series per content type for a stream

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/analytics/v1/streams/{stream_id}/buffer-ratio', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/analytics/v1/streams/{stream_id}/buffer-ratio", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/analytics/v1/streams/{stream_id}/buffer-ratio HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/analytics/v1/streams/{stream_id}/buffer-ratio',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/analytics/v1/streams/{stream_id}/buffer-ratio',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /analytics/v1/streams/{stream_id}/buffer-ratio

Get buffer ratio time series per content type for a stream.

Parameters

Name In Type Required Description
stream_id path string true example: ck8u9fwwu1wtg0hewiqz3we6j
interval.start_time query string(date-time) false Optional. Inclusive start of the interval.
interval.end_time query string(date-time) false Optional. Exclusive end of the interval.
time_step query string false example: TIME_STEP_HOUR
filter query string false Filters the result by several dimensions using KQL

Detailed descriptions

interval.start_time: Optional. Inclusive start of the interval.

If specified, a Timestamp matching this interval will have to be the same or after the start.

interval.end_time: Optional. Exclusive end of the interval.

If specified, a Timestamp matching this interval will have to be before the end.

filter: Filters the result by several dimensions using KQL example: city:(London OR Manchester) isp:Vodafone " Possible filters: - identity_id - device_type - isp - connection_type - country_code - region - state_province - city - os - cdn

Enumerated Values

Parameter Value
time_step TIME_STEP_UNSPECIFIED
time_step TIME_STEP_MINUTE
time_step TIME_STEP_HOUR
time_step TIME_STEP_DAY
time_step TIME_STEP_MONTH
time_step TIME_STEP_YEAR

Example responses

200 Response

{
  "time_series": [
    {
      "content_type": "CONTENT_TYPE_UNSPECIFIED",
      "points": [
        {
          "ratio": 0.1,
          "time": "2019-08-24T14:15:22Z"
        }
      ]
    }
  ],
  "time_step": "TIME_STEP_UNSPECIFIED"
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.analytics.v1.GetBufferRatioTimeSeriesResponse
default Default An unexpected error response. google.rpc.Status

Get concurrent plays time series for a stream

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/analytics/v1/streams/{stream_id}/concurrent-plays', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/analytics/v1/streams/{stream_id}/concurrent-plays", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/analytics/v1/streams/{stream_id}/concurrent-plays HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/analytics/v1/streams/{stream_id}/concurrent-plays',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/analytics/v1/streams/{stream_id}/concurrent-plays',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /analytics/v1/streams/{stream_id}/concurrent-plays

Get concurrent plays time series for a stream.

Parameters

Name In Type Required Description
stream_id path string true example: ck8u9fwwu1wtg0hewiqz3we6j
interval.start_time query string(date-time) false Optional. Inclusive start of the interval.
interval.end_time query string(date-time) false Optional. Exclusive end of the interval.
time_step query string false example: TIME_STEP_HOUR
filter query string false Filters the result by several dimensions using KQL

Detailed descriptions

interval.start_time: Optional. Inclusive start of the interval.

If specified, a Timestamp matching this interval will have to be the same or after the start.

interval.end_time: Optional. Exclusive end of the interval.

If specified, a Timestamp matching this interval will have to be before the end.

filter: Filters the result by several dimensions using KQL example: city:(London OR Manchester) isp:Vodafone " Possible filters: - identity_id - device_type - isp - connection_type - country_code - region - state_province - city - os - cdn

Enumerated Values

Parameter Value
time_step TIME_STEP_UNSPECIFIED
time_step TIME_STEP_MINUTE
time_step TIME_STEP_HOUR
time_step TIME_STEP_DAY
time_step TIME_STEP_MONTH
time_step TIME_STEP_YEAR

Example responses

200 Response

{
  "concurrent_plays": [
    {
      "plays": 0,
      "time": "2019-08-24T14:15:22Z"
    }
  ],
  "time_step": "TIME_STEP_UNSPECIFIED"
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.analytics.v1.GetConcurrentPlaysTimeSeriesResponse
default Default An unexpected error response. google.rpc.Status

Get total users for a stream

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/analytics/v1/streams/{stream_id}/total-users', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/analytics/v1/streams/{stream_id}/total-users", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/analytics/v1/streams/{stream_id}/total-users HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/analytics/v1/streams/{stream_id}/total-users',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/analytics/v1/streams/{stream_id}/total-users',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /analytics/v1/streams/{stream_id}/total-users

Get total users for a stream.

Parameters

Name In Type Required Description
stream_id path string true example: ck8u9fwwu1wtg0hewiqz3we6j
filter query string false Filters the result by several dimensions using KQL

Detailed descriptions

filter: Filters the result by several dimensions using KQL example: city:(London OR Manchester) isp:Vodafone " Possible filters: - identity_id - device_type - isp - connection_type - country_code - region - state_province - city - os - cdn

Example responses

200 Response

{
  "stream_id": "string",
  "total_users": [
    {
      "content_type": "CONTENT_TYPE_UNSPECIFIED",
      "users_count": 0
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.analytics.v1.GetTotalUsersResponse
default Default An unexpected error response. google.rpc.Status

Get video stats time series for a stream

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/analytics/v1/streams/{stream_id}/video-stats', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/analytics/v1/streams/{stream_id}/video-stats", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/analytics/v1/streams/{stream_id}/video-stats HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/analytics/v1/streams/{stream_id}/video-stats',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/analytics/v1/streams/{stream_id}/video-stats',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /analytics/v1/streams/{stream_id}/video-stats

Get video stats time series for a stream.

Parameters

Name In Type Required Description
stream_id path string true example: ck8u9fwwu1wtg0hewiqz3we6j
interval.start_time query string(date-time) false Optional. Inclusive start of the interval.
interval.end_time query string(date-time) false Optional. Exclusive end of the interval.

Detailed descriptions

interval.start_time: Optional. Inclusive start of the interval.

If specified, a Timestamp matching this interval will have to be the same or after the start.

interval.end_time: Optional. Exclusive end of the interval.

If specified, a Timestamp matching this interval will have to be before the end.

Example responses

200 Response

{
  "time_series": [
    {
      "audio_bit_rate": 0,
      "bit_rate": 0,
      "connection_count": 0,
      "frame_rate": 0.1,
      "key_frame_consistent": true,
      "key_frame_interval": 0.1,
      "resolution": 0,
      "time": "2019-08-24T14:15:22Z"
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.analytics.v1.GetVideoStatsTimeSeriesResponse
default Default An unexpected error response. google.rpc.Status

Get the video stats snapshot for a stream

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/analytics/v1/streams/{stream_id}/video-stats-snapshot', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/analytics/v1/streams/{stream_id}/video-stats-snapshot", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/analytics/v1/streams/{stream_id}/video-stats-snapshot HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/analytics/v1/streams/{stream_id}/video-stats-snapshot',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/analytics/v1/streams/{stream_id}/video-stats-snapshot',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /analytics/v1/streams/{stream_id}/video-stats-snapshot

Get the video stats snapshot for a stream.

Parameters

Name In Type Required Description
stream_id path string true example: ck8u9fwwu1wtg0hewiqz3we6j

Example responses

200 Response

{
  "snapshot": {
    "audio_bit_rate": 0,
    "bit_rate": 0,
    "connection_count": 0,
    "frame_rate": 0.1,
    "key_frame_consistent": true,
    "key_frame_interval": 0.1,
    "resolution": 0,
    "time": "2019-08-24T14:15:22Z"
  }
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.analytics.v1.GetVideoStatsSnapshotResponse
default Default An unexpected error response. google.rpc.Status

Get a watch session by id

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/analytics/v1beta1/consumption/projects/{project_id}/sessions/{session_id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/analytics/v1beta1/consumption/projects/{project_id}/sessions/{session_id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/analytics/v1beta1/consumption/projects/{project_id}/sessions/{session_id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/analytics/v1beta1/consumption/projects/{project_id}/sessions/{session_id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/analytics/v1beta1/consumption/projects/{project_id}/sessions/{session_id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /analytics/v1beta1/consumption/projects/{project_id}/sessions/{session_id}

Get a watch session by id

Parameters

Name In Type Required Description
project_id path string true example: eleven-italy
session_id path string true The id of the session

Example responses

200 Response

{
  "content": {
    "media_resource": "string",
    "origin": "string",
    "stream_id": "string",
    "streaming_protocol": "string",
    "title": "string",
    "type_view": "CONTENT_TYPE_UNSPECIFIED"
  },
  "device": {
    "browser_name": "string",
    "browser_version": "string",
    "model": "string",
    "os": "string",
    "os_version": "string",
    "player": "string",
    "plugin_version": "string",
    "type": "string",
    "vendor": "string"
  },
  "effective_watch_duration": "string",
  "events": [
    {
      "buffer_duration": "string",
      "event_time": "2019-08-24T14:15:22Z",
      "event_type": "string",
      "offset": "string",
      "play_head": "string",
      "rendition": "string"
    }
  ],
  "geolocation": {
    "city": "string",
    "country_code": "string",
    "region": "string"
  },
  "identity": {
    "happiness_score": 0.1,
    "identity_id": "string",
    "is_registered": true
  },
  "network": {
    "cdn": "string",
    "connection_type": "string",
    "isp": "string"
  },
  "quality": {
    "buffer_ratio": 0.1,
    "buffers_count": 0,
    "error_description": "string",
    "error_metadata": "string",
    "error_player_code": "string",
    "error_type": "string",
    "join_time": "string"
  },
  "session_end": "2019-08-24T14:15:22Z",
  "session_id": "string",
  "session_start": "2019-08-24T14:15:22Z",
  "watch_duration": "string"
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.analytics.v1beta1.GetSessionResponse
default Default An unexpected error response. google.rpc.Status

AnnotationService

TestIamPermissions

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.post('https://mcls-api.mycujoo.tv/annotations/v1/sets/test_iam_permissions', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/annotations/v1/sets/test_iam_permissions", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/annotations/v1/sets/test_iam_permissions HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "permissions": [
    "projects.create",
    "projects.update",
    "projects.delete"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/annotations/v1/sets/test_iam_permissions',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "permissions": [
    "projects.create",
    "projects.update",
    "projects.delete"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/annotations/v1/sets/test_iam_permissions',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /annotations/v1/sets/test_iam_permissions

Body parameter

{
  "permissions": [
    "projects.create",
    "projects.update",
    "projects.delete"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
}

Parameters

Name In Type Required Description
body body mycujoo.annotations.v1beta1.TestIamPermissionsRequest true none

Example responses

200 Response

{
  "permissions": [
    "projects.create",
    "projects.update"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.annotations.v1beta1.TestIamPermissionsResponse
default Default An unexpected error response. google.rpc.Status

GetAnnotationSetIamPolicy

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/annotations/v1/sets/{set_id}/iam_policy', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/annotations/v1/sets/{set_id}/iam_policy", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/annotations/v1/sets/{set_id}/iam_policy HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/annotations/v1/sets/{set_id}/iam_policy',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/annotations/v1/sets/{set_id}/iam_policy',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /annotations/v1/sets/{set_id}/iam_policy

Returns current IAM policy for the annotation set. Use returned policy and etag to update policy.

Parameters

Name In Type Required Description
set_id path string true none

Example responses

200 Response

{
  "etag": "string",
  "policy": {
    "bindings": [
      {
        "account_ids": [
          "2GzbST9DaEPsNcDTaW30GWnfZyw",
          "2GzbTHf7FfMyGv2F71FWwGRzKWb"
        ],
        "role_id": "owner"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "projects.admin"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "accounts.admin"
      }
    ]
  },
  "resource_hierarchy": [
    {
      "id": "elevendata",
      "type": "project"
    }
  ],
  "resource_title": "string"
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.annotations.v1beta1.GetAnnotationSetIamPolicyResponse
default Default An unexpected error response. google.rpc.Status

SetAnnotationSetIamPolicy

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.post('https://mcls-api.mycujoo.tv/annotations/v1/sets/{set_id}/iam_policy', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/annotations/v1/sets/{set_id}/iam_policy", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/annotations/v1/sets/{set_id}/iam_policy HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "etag": "string",
  "policy": {
    "bindings": [
      {
        "account_ids": [
          "2GzbST9DaEPsNcDTaW30GWnfZyw",
          "2GzbTHf7FfMyGv2F71FWwGRzKWb"
        ],
        "role_id": "owner"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "projects.admin"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "accounts.admin"
      }
    ]
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/annotations/v1/sets/{set_id}/iam_policy',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "etag": "string",
  "policy": {
    "bindings": [
      {
        "account_ids": [
          "2GzbST9DaEPsNcDTaW30GWnfZyw",
          "2GzbTHf7FfMyGv2F71FWwGRzKWb"
        ],
        "role_id": "owner"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "projects.admin"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "accounts.admin"
      }
    ]
  }
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/annotations/v1/sets/{set_id}/iam_policy',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /annotations/v1/sets/{set_id}/iam_policy

Set IAM policy for the annotation set. The policy should control permissions annotations.sets.* and it will take effect for annotations as well.

Body parameter

{
  "etag": "string",
  "policy": {
    "bindings": [
      {
        "account_ids": [
          "2GzbST9DaEPsNcDTaW30GWnfZyw",
          "2GzbTHf7FfMyGv2F71FWwGRzKWb"
        ],
        "role_id": "owner"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "projects.admin"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "accounts.admin"
      }
    ]
  }
}

Parameters

Name In Type Required Description
set_id path string true none
body body object true none
ยป etag body string(byte) false none
ยป policy body mycujoo.auth.v1.Policy true Authorization policy.
ยปยป bindings body [mycujoo.auth.v1.Binding] false List of bindings to the policy. If empty, the policy will not have any effect.
ยปยปยป account_ids body [string] false List of account identifiers (referencing mycujoo.accounts.v1.Account) that have the role.
ยปยปยป include_all_organization_accounts body boolean false If this is set to true then the role is granted to all accounts in the organization. It overrides the account_ids field.
ยปยปยป role_id body string false none

Detailed descriptions

ยปยป bindings: List of bindings to the policy. If empty, the policy will not have any effect. Total number of accounts referenced in the bindings should be up to 1500. If same account has multiple roles - it is counted multiple times.

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.annotations.v1beta1.SetAnnotationSetIamPolicyResponse
default Default An unexpected error response. google.rpc.Status

List annotations

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/annotations/v1beta1', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/annotations/v1beta1", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/annotations/v1beta1 HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/annotations/v1beta1',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/annotations/v1beta1',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /annotations/v1beta1

List all the annotations from an account.

Parameters

Name In Type Required Description
timeline_id query string false none
page_size query integer(int32) false A positive number that is the maximum number of results to return.
page_token query string false empty or containing the "next_page_token" from a previous call.
order_by query string false Specifies the result ordering for List requests.
includes query array[string] false Specifies what response metadata should include.
type_id query string false Filter by annotation type
set_id query string false Filter by annotation set

Detailed descriptions

order_by: Specifies the result ordering for List requests.

includes: Specifies what response metadata should include. e.g. when 'INCLUDE_TOTAL_SIZE' is passed, response metadata will include total size of the result

Enumerated Values

Parameter Value
order_by ORDER_UNSPECIFIED
order_by ORDER_OFFSET_ASC
order_by ORDER_OFFSET_DESC
includes INCLUDE_UNSPECIFIED
includes INCLUDE_TOTAL_SIZE

Example responses

200 Response

{
  "annotations": [
    {
      "action_call_ids": [
        "string"
      ],
      "create_time": "2019-08-24T14:15:22Z",
      "id": "string",
      "offset": "string",
      "timeline_id": "string",
      "type_id": "string"
    }
  ],
  "next_page_token": "string",
  "total_size": 0
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.annotations.v1beta1.ListAnnotationsResponse
default Default An unexpected error response. google.rpc.Status

Creates an annotation

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.post('https://mcls-api.mycujoo.tv/annotations/v1beta1', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/annotations/v1beta1", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/annotations/v1beta1 HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "live": {
    "time": "2019-08-24T14:15:22Z"
  },
  "live_vod": {
    "offset": "string",
    "time": "2019-08-24T14:15:22Z"
  },
  "timeline_id": "string",
  "type_id": "string",
  "uploaded": {
    "offset": "string"
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/annotations/v1beta1',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "live": {
    "time": "2019-08-24T14:15:22Z"
  },
  "live_vod": {
    "offset": "string",
    "time": "2019-08-24T14:15:22Z"
  },
  "timeline_id": "string",
  "type_id": "string",
  "uploaded": {
    "offset": "string"
  }
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/annotations/v1beta1',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /annotations/v1beta1

Creates a new annotation from a type on a timeline.

Body parameter

{
  "live": {
    "time": "2019-08-24T14:15:22Z"
  },
  "live_vod": {
    "offset": "string",
    "time": "2019-08-24T14:15:22Z"
  },
  "timeline_id": "string",
  "type_id": "string",
  "uploaded": {
    "offset": "string"
  }
}

Parameters

Name In Type Required Description
body body mycujoo.annotations.v1beta1.CreateAnnotationRequest true none

Example responses

200 Response

{
  "annotation": {
    "action_call_ids": [
      "string"
    ],
    "create_time": "2019-08-24T14:15:22Z",
    "id": "string",
    "offset": "string",
    "timeline_id": "string",
    "type_id": "string"
  }
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.annotations.v1beta1.CreateAnnotationResponse
400 Bad Request Bad input parameters Inline
500 Internal Server Error Internal Server Error Inline
default Default An unexpected error response. google.rpc.Status

Response Schema

Lists annotation sets

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/annotations/v1beta1/sets', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/annotations/v1beta1/sets", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/annotations/v1beta1/sets HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/annotations/v1beta1/sets',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/annotations/v1beta1/sets',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /annotations/v1beta1/sets

List all the annotation sets from an account.

Parameters

Name In Type Required Description
page_size query integer(int32) false A positive number that is the maximum number of results to return.
page_token query string false empty or containing the "next_page_token" from a previous call.
order_by query string false Specifies the result ordering for List requests.
includes query array[string] false Specifies what response metadata should include.

Detailed descriptions

order_by: Specifies the result ordering for List requests.

includes: Specifies what response metadata should include. e.g. when 'INCLUDE_TOTAL_SIZE' is passed, response metadata will include total size of the result

Enumerated Values

Parameter Value
order_by ORDER_TITLE_UNSPECIFIED
order_by ORDER_TITLE_ASC
order_by ORDER_TITLE_DESC
includes INCLUDE_UNSPECIFIED
includes INCLUDE_TOTAL_SIZE

Example responses

200 Response

{
  "next_page_token": "string",
  "sets": [
    {
      "id": "string",
      "title": "string"
    }
  ],
  "total_size": 0
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.annotations.v1beta1.ListAnnotationSetsResponse
default Default An unexpected error response. google.rpc.Status

Creates a new annotation set

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.post('https://mcls-api.mycujoo.tv/annotations/v1beta1/sets', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/annotations/v1beta1/sets", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/annotations/v1beta1/sets HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "title": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/annotations/v1beta1/sets',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "title": "string"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/annotations/v1beta1/sets',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /annotations/v1beta1/sets

Creates a new annotation set.

Body parameter

{
  "title": "string"
}

Parameters

Name In Type Required Description
body body mycujoo.annotations.v1beta1.CreateAnnotationSetRequest true none

Example responses

200 Response

{
  "set": {
    "id": "string",
    "title": "string"
  }
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.annotations.v1beta1.CreateAnnotationSetResponse
400 Bad Request Bad input parameters Inline
500 Internal Server Error Internal Server Error Inline
default Default An unexpected error response. google.rpc.Status

Response Schema

Returns a single annotation set

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/annotations/v1beta1/sets/{id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/annotations/v1beta1/sets/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/annotations/v1beta1/sets/{id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/annotations/v1beta1/sets/{id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/annotations/v1beta1/sets/{id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /annotations/v1beta1/sets/{id}

Returns a single annotation set.

Parameters

Name In Type Required Description
id path string true none

Example responses

200 Response

{
  "set": {
    "id": "string",
    "title": "string"
  }
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.annotations.v1beta1.GetAnnotationSetResponse
400 Bad Request Bad input parameters Inline
500 Internal Server Error Internal Server Error Inline
default Default An unexpected error response. google.rpc.Status

Response Schema

Deletes an annotation set

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.delete('https://mcls-api.mycujoo.tv/annotations/v1beta1/sets/{id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "https://mcls-api.mycujoo.tv/annotations/v1beta1/sets/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE https://mcls-api.mycujoo.tv/annotations/v1beta1/sets/{id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/annotations/v1beta1/sets/{id}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/annotations/v1beta1/sets/{id}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

DELETE /annotations/v1beta1/sets/{id}

Deletes an annotation set.

Parameters

Name In Type Required Description
id path string true none

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.annotations.v1beta1.DeleteAnnotationSetResponse
500 Internal Server Error Internal Server Error Inline
default Default An unexpected error response. google.rpc.Status

Response Schema

Updates an annotation set

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.patch('https://mcls-api.mycujoo.tv/annotations/v1beta1/sets/{id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "https://mcls-api.mycujoo.tv/annotations/v1beta1/sets/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PATCH https://mcls-api.mycujoo.tv/annotations/v1beta1/sets/{id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "title": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/annotations/v1beta1/sets/{id}',
{
  method: 'PATCH',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "title": "string"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/annotations/v1beta1/sets/{id}',
{
  method: 'PATCH',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PATCH /annotations/v1beta1/sets/{id}

Updates an annotation set.

Body parameter

{
  "title": "string"
}

Parameters

Name In Type Required Description
id path string true ID of the annotation set to update
body body mycujoo.annotations.v1beta1.UpdateAnnotationSetRequestFields true Fields to update

Example responses

200 Response

{
  "set": {
    "id": "string",
    "title": "string"
  }
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.annotations.v1beta1.UpdateAnnotationSetResponse
400 Bad Request Bad input parameters Inline
500 Internal Server Error Internal Server Error Inline
default Default An unexpected error response. google.rpc.Status

Response Schema

Lists annotation types

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/annotations/v1beta1/types', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/annotations/v1beta1/types", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/annotations/v1beta1/types HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/annotations/v1beta1/types',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/annotations/v1beta1/types',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /annotations/v1beta1/types

List all the annotation types from an account.

Parameters

Name In Type Required Description
set_id query string false none
page_size query integer(int32) false A positive number that is the maximum number of results to return.
page_token query string false empty or containing the "next_page_token" from a previous call.
order_by query string false Specifies the result ordering for List requests.
includes query array[string] false Specifies what response metadata should include.

Detailed descriptions

order_by: Specifies the result ordering for List requests.

includes: Specifies what response metadata should include. e.g. when 'INCLUDE_TOTAL_SIZE' is passed, response metadata will include total size of the result

Enumerated Values

Parameter Value
order_by ORDER_TITLE_UNSPECIFIED
order_by ORDER_TITLE_ASC
order_by ORDER_TITLE_DESC
includes INCLUDE_UNSPECIFIED
includes INCLUDE_TOTAL_SIZE

Example responses

200 Response

{
  "next_page_token": "string",
  "total_size": 0,
  "types": [
    {
      "action_configuration_ids": [
        "string"
      ],
      "id": "string",
      "set_id": "string",
      "title": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.annotations.v1beta1.ListAnnotationTypesResponse
default Default An unexpected error response. google.rpc.Status

Creats an annotation type

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.post('https://mcls-api.mycujoo.tv/annotations/v1beta1/types', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/annotations/v1beta1/types", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/annotations/v1beta1/types HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "set_id": "string",
  "title": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/annotations/v1beta1/types',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "set_id": "string",
  "title": "string"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/annotations/v1beta1/types',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /annotations/v1beta1/types

Creates a new annotation type.

Body parameter

{
  "set_id": "string",
  "title": "string"
}

Parameters

Name In Type Required Description
body body mycujoo.annotations.v1beta1.CreateAnnotationTypeRequest true none

Example responses

200 Response

{
  "type": {
    "action_configuration_ids": [
      "string"
    ],
    "id": "string",
    "set_id": "string",
    "title": "string"
  }
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.annotations.v1beta1.CreateAnnotationTypeResponse
400 Bad Request Bad input parameters Inline
500 Internal Server Error Internal Server Error Inline
default Default An unexpected error response. google.rpc.Status

Response Schema

Returns a single annotation type

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/annotations/v1beta1/types/{id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/annotations/v1beta1/types/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/annotations/v1beta1/types/{id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/annotations/v1beta1/types/{id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/annotations/v1beta1/types/{id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /annotations/v1beta1/types/{id}

Returns a single annotation type.

Parameters

Name In Type Required Description
id path string true none

Example responses

200 Response

{
  "type": {
    "action_configuration_ids": [
      "string"
    ],
    "id": "string",
    "set_id": "string",
    "title": "string"
  }
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.annotations.v1beta1.GetAnnotationTypeResponse
400 Bad Request Bad input parameters Inline
500 Internal Server Error Internal Server Error Inline
default Default An unexpected error response. google.rpc.Status

Response Schema

Deletes an annotation type

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.delete('https://mcls-api.mycujoo.tv/annotations/v1beta1/types/{id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "https://mcls-api.mycujoo.tv/annotations/v1beta1/types/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE https://mcls-api.mycujoo.tv/annotations/v1beta1/types/{id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/annotations/v1beta1/types/{id}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/annotations/v1beta1/types/{id}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

DELETE /annotations/v1beta1/types/{id}

Deletes an annotation type.

Parameters

Name In Type Required Description
id path string true none

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.annotations.v1beta1.DeleteAnnotationTypeResponse
500 Internal Server Error Internal Server Error Inline
default Default An unexpected error response. google.rpc.Status

Response Schema

Updates an annotation type

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.patch('https://mcls-api.mycujoo.tv/annotations/v1beta1/types/{id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "https://mcls-api.mycujoo.tv/annotations/v1beta1/types/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PATCH https://mcls-api.mycujoo.tv/annotations/v1beta1/types/{id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "title": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/annotations/v1beta1/types/{id}',
{
  method: 'PATCH',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "title": "string"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/annotations/v1beta1/types/{id}',
{
  method: 'PATCH',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PATCH /annotations/v1beta1/types/{id}

Updates an annotation type.

Body parameter

{
  "title": "string"
}

Parameters

Name In Type Required Description
id path string true ID of the annotation set to update
body body mycujoo.annotations.v1beta1.UpdateAnnotationTypeRequestFields true Fields to update

Example responses

200 Response

{
  "type": {
    "action_configuration_ids": [
      "string"
    ],
    "id": "string",
    "set_id": "string",
    "title": "string"
  }
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.annotations.v1beta1.UpdateAnnotationTypeResponse
400 Bad Request Bad input parameters Inline
500 Internal Server Error Internal Server Error Inline
default Default An unexpected error response. google.rpc.Status

Response Schema

Returns a single annotation

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/annotations/v1beta1/{id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/annotations/v1beta1/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/annotations/v1beta1/{id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/annotations/v1beta1/{id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/annotations/v1beta1/{id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /annotations/v1beta1/{id}

Returns a single annotation.

Parameters

Name In Type Required Description
id path string true none

Example responses

200 Response

{
  "annotation": {
    "action_call_ids": [
      "string"
    ],
    "create_time": "2019-08-24T14:15:22Z",
    "id": "string",
    "offset": "string",
    "timeline_id": "string",
    "type_id": "string"
  }
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.annotations.v1beta1.GetAnnotationResponse
400 Bad Request Bad input parameters Inline
500 Internal Server Error Internal Server Error Inline
default Default An unexpected error response. google.rpc.Status

Response Schema

Deletes an annotation

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.delete('https://mcls-api.mycujoo.tv/annotations/v1beta1/{id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "https://mcls-api.mycujoo.tv/annotations/v1beta1/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE https://mcls-api.mycujoo.tv/annotations/v1beta1/{id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/annotations/v1beta1/{id}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/annotations/v1beta1/{id}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

DELETE /annotations/v1beta1/{id}

deletes an annotation.

Parameters

Name In Type Required Description
id path string true none

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.annotations.v1beta1.DeleteAnnotationResponse
500 Internal Server Error Internal Server Error Inline
default Default An unexpected error response. google.rpc.Status

Response Schema

Updates an annotation

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.patch('https://mcls-api.mycujoo.tv/annotations/v1beta1/{id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "https://mcls-api.mycujoo.tv/annotations/v1beta1/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PATCH https://mcls-api.mycujoo.tv/annotations/v1beta1/{id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "offset": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/annotations/v1beta1/{id}',
{
  method: 'PATCH',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "offset": "string"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/annotations/v1beta1/{id}',
{
  method: 'PATCH',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PATCH /annotations/v1beta1/{id}

Updates an annotation.

Body parameter

{
  "offset": "string"
}

Parameters

Name In Type Required Description
id path string true ID of the annotation to update
body body mycujoo.annotations.v1beta1.UpdateAnnotationRequestFields true Fields to update

Example responses

200 Response

{
  "annotation": {
    "action_call_ids": [
      "string"
    ],
    "create_time": "2019-08-24T14:15:22Z",
    "id": "string",
    "offset": "string",
    "timeline_id": "string",
    "type_id": "string"
  }
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.annotations.v1beta1.UpdateAnnotationResponse
400 Bad Request Bad input parameters Inline
500 Internal Server Error Internal Server Error Inline
default Default An unexpected error response. google.rpc.Status

Response Schema

AssetService

Lists assets

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/assets/v1beta1', params={
  'page_size': '0'
}, headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/assets/v1beta1", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/assets/v1beta1?page_size=0 HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/assets/v1beta1?page_size=0',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/assets/v1beta1?page_size=0',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /assets/v1beta1

Lists assets.

Parameters

Name In Type Required Description
page_size query integer(int32) true Maximum number of records to return.
page_token query string false Pagination token from the ListAssets response.
filter query string false Filter

Example responses

200 Response

{
  "assets": [
    {
      "audio_metadata": {
        "audio_format": "string",
        "duration": "string"
      },
      "bucket_name": "string",
      "create_time": "2019-08-24T14:15:22Z",
      "extension": "string",
      "id": "string",
      "image_metadata": {
        "height": 0,
        "width": 0
      },
      "labels": {
        "property1": "string",
        "property2": "string"
      },
      "media_type": "string",
      "org_id": "string",
      "path": "string",
      "project_id": "string",
      "public_url": "string",
      "size_bytes": "string",
      "thumbnail": {
        "id": "string",
        "public_url": "string"
      },
      "title": "string",
      "update_time": "2019-08-24T14:15:22Z",
      "video_metadata": {
        "duration": "string",
        "height": 0,
        "video_format": "string",
        "width": 0
      }
    }
  ],
  "next_page_token": "string"
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.assets.v1beta1.ListAssetsResponse
500 Internal Server Error Internal Server Error Inline
default Default An unexpected error response. google.rpc.Status

Response Schema

Creates a single asset

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.post('https://mcls-api.mycujoo.tv/assets/v1beta1', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/assets/v1beta1", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/assets/v1beta1 HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/assets/v1beta1',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/assets/v1beta1',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /assets/v1beta1

Creates a single asset.

Parameters

Name In Type Required Description
org_id query string false Organization ID of the asset.
project_id query string false Project ID of the asset
media_type query string false Media type (MIME) of the asset as defined in RFC2045
bucket_name query string false Bucket name of the stored object.
path query string false Path to the stored object.
labels[string] query string false Key-value labels of the asset. These can help organize the assets; for example, type:image
title query string false Human-friendly title of the asset.
size_bytes query string(int64) false Size of the asset (in bytes)
image_metadata.width query integer(int32) false Width of the image
image_metadata.height query integer(int32) false Height of the image
video_metadata.width query integer(int32) false Width of the video
video_metadata.height query integer(int32) false Height of the video
video_metadata.duration query string false Duration of the video
video_metadata.video_format query string false Video format (name of the video container format, eg. MPEG-4, Matroska, FLV)
audio_metadata.duration query string false Duration of the audio
audio_metadata.audio_format query string false Audio format (name of the video container format, eg. MPEG-3)

Detailed descriptions

labels[string]: Key-value labels of the asset. These can help organize the assets; for example, type:image

This is a request variable of the map type. The query format is "map_name[key]=value", e.g. If the map name is Age, the key type is string, and the value type is integer, the query parameter is expressed as Age["bob"]=18

Example responses

400 Response

null

Responses

Status Meaning Description Schema
200 OK A successful response. None
400 Bad Request Bad input parameters Inline
500 Internal Server Error Internal Server Error Inline
default Default An unexpected error response. google.rpc.Status

Response Schema

Get a list of assets by their IDs.

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.post('https://mcls-api.mycujoo.tv/assets/v1beta1/batch', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/assets/v1beta1/batch", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/assets/v1beta1/batch HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/assets/v1beta1/batch',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/assets/v1beta1/batch',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /assets/v1beta1/batch

Get a list of assets by their IDs.

Parameters

Name In Type Required Description
ids query array[string] false A list of unique identifiers of the assets

Example responses

default Response

{
  "code": 0,
  "details": [
    {
      "@type": "string"
    }
  ],
  "message": "string"
}

Responses

Status Meaning Description Schema
200 OK A successful response. None
default Default An unexpected error response. google.rpc.Status

Response Schema

Imports a single asset into the asset service

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.post('https://mcls-api.mycujoo.tv/assets/v1beta1/import', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/assets/v1beta1/import", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/assets/v1beta1/import HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/assets/v1beta1/import',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/assets/v1beta1/import',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /assets/v1beta1/import

Imports a single asset.

Parameters

Name In Type Required Description
asset.extension query string false Extension of the asset including the dot (like .jpg)
asset.media_type query string false Media type (MIME) of the asset as defined in RFC2045
asset.source_url query string false Source URL of the asset
asset.org_id query string false Organization ID of the asset.
asset.project_id query string false Project ID of the asset
asset.title query string false Human-friendly name of the asset.
asset.labels[string] query string false Key-value labels of the asset. These can help organize the assets; for example, type:image
asset.image_metadata.width query integer(int32) false Width of the image
asset.image_metadata.height query integer(int32) false Height of the image
asset.video_metadata.width query integer(int32) false Width of the video
asset.video_metadata.height query integer(int32) false Height of the video
asset.video_metadata.duration query string false Duration of the video
asset.video_metadata.video_format query string false Video format (name of the video container format, eg. MPEG-4, Matroska, FLV)
asset.audio_metadata.duration query string false Duration of the audio
asset.audio_metadata.audio_format query string false Audio format (name of the video container format, eg. MPEG-3)
asset.size_bytes query string(int64) false Size of the asset (in bytes)

Detailed descriptions

asset.labels[string]: Key-value labels of the asset. These can help organize the assets; for example, type:image

This is a request variable of the map type. The query format is "map_name[key]=value", e.g. If the map name is Age, the key type is string, and the value type is integer, the query parameter is expressed as Age["bob"]=18

Example responses

200 Response

{
  "asset": {
    "audio_metadata": {
      "audio_format": "string",
      "duration": "string"
    },
    "bucket_name": "string",
    "create_time": "2019-08-24T14:15:22Z",
    "extension": "string",
    "id": "string",
    "image_metadata": {
      "height": 0,
      "width": 0
    },
    "labels": {
      "property1": "string",
      "property2": "string"
    },
    "media_type": "string",
    "org_id": "string",
    "path": "string",
    "project_id": "string",
    "public_url": "string",
    "size_bytes": "string",
    "thumbnail": {
      "id": "string",
      "public_url": "string"
    },
    "title": "string",
    "update_time": "2019-08-24T14:15:22Z",
    "video_metadata": {
      "duration": "string",
      "height": 0,
      "video_format": "string",
      "width": 0
    }
  }
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.assets.v1beta1.ImportAssetResponse
400 Bad Request Bad input parameters Inline
500 Internal Server Error Internal Server Error Inline
default Default An unexpected error response. google.rpc.Status

Response Schema

Lists all avaliable label keys of assets

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/assets/v1beta1/labels_keys', params={
  'page_size': '0'
}, headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/assets/v1beta1/labels_keys", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/assets/v1beta1/labels_keys?page_size=0 HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/assets/v1beta1/labels_keys?page_size=0',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/assets/v1beta1/labels_keys?page_size=0',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /assets/v1beta1/labels_keys

Imports a single asset.

Parameters

Name In Type Required Description
page_size query integer(int32) true Maximum number of records to return.
page_token query string false Pagination token from the ListAssets response.
filter query string false Filter

Example responses

200 Response

{
  "keys": [
    {
      "create_time": "2019-08-24T14:15:22Z",
      "id": "string",
      "key": "string"
    }
  ],
  "next_page_token": "string"
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.assets.v1beta1.ListLabelKeysResponse
400 Bad Request Bad input parameters Inline
500 Internal Server Error Internal Server Error Inline
default Default An unexpected error response. google.rpc.Status

Response Schema

Lists all avaliable label values of assets

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/assets/v1beta1/labels_values', params={
  'page_size': '0'
}, headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/assets/v1beta1/labels_values", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/assets/v1beta1/labels_values?page_size=0 HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/assets/v1beta1/labels_values?page_size=0',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/assets/v1beta1/labels_values?page_size=0',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /assets/v1beta1/labels_values

Imports a single asset.

Parameters

Name In Type Required Description
page_size query integer(int32) true Maximum number of records to return.
page_token query string false Pagination token from the ListAssets response.
filter query string false Filter

Example responses

200 Response

{
  "next_page_token": "string",
  "values": [
    {
      "create_time": "2019-08-24T14:15:22Z",
      "id": "string",
      "value": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.assets.v1beta1.ListLabelValuesResponse
400 Bad Request Bad input parameters Inline
500 Internal Server Error Internal Server Error Inline
default Default An unexpected error response. google.rpc.Status

Response Schema

AssetService_TestIamPermissions

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.post('https://mcls-api.mycujoo.tv/assets/v1beta1/test_iam_permissions', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/assets/v1beta1/test_iam_permissions", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/assets/v1beta1/test_iam_permissions HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "permissions": [
    "projects.create",
    "projects.update",
    "projects.delete"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/assets/v1beta1/test_iam_permissions',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "permissions": [
    "projects.create",
    "projects.update",
    "projects.delete"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/assets/v1beta1/test_iam_permissions',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /assets/v1beta1/test_iam_permissions

Tests IAM permissions for the asset.

Body parameter

{
  "permissions": [
    "projects.create",
    "projects.update",
    "projects.delete"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
}

Parameters

Name In Type Required Description
body body mycujoo.assets.v1beta1.TestIamPermissionsRequest true none

Example responses

200 Response

{
  "permissions": [
    "projects.create",
    "projects.update"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.assets.v1beta1.TestIamPermissionsResponse
400 Bad Request Bad input parameters Inline
500 Internal Server Error Internal Server Error Inline
default Default An unexpected error response. google.rpc.Status

Response Schema

Creates an upload session and returns a signed url for uploading the asset

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.post('https://mcls-api.mycujoo.tv/assets/v1beta1/uploads', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/assets/v1beta1/uploads", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/assets/v1beta1/uploads HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "content_length": "string",
  "labels": {
    "property1": "string",
    "property2": "string"
  },
  "media_type": "string",
  "project_id": "string",
  "title": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/assets/v1beta1/uploads',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "content_length": "string",
  "labels": {
    "property1": "string",
    "property2": "string"
  },
  "media_type": "string",
  "project_id": "string",
  "title": "string"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/assets/v1beta1/uploads',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /assets/v1beta1/uploads

Creates a asset upload session

Body parameter

{
  "content_length": "string",
  "labels": {
    "property1": "string",
    "property2": "string"
  },
  "media_type": "string",
  "project_id": "string",
  "title": "string"
}

Parameters

Name In Type Required Description
body body mycujoo.assets.v1beta1.CreateUploadRequest true none

Example responses

200 Response

{
  "expiration_time": "2019-08-24T14:15:22Z",
  "upload_url": "string"
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.assets.v1beta1.CreateUploadResponse
400 Bad Request Bad input parameters Inline
500 Internal Server Error Internal Server Error Inline
default Default An unexpected error response. google.rpc.Status

Response Schema

GetIamPolicy

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/assets/v1beta1/{asset_id}/iam_policy', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/assets/v1beta1/{asset_id}/iam_policy", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/assets/v1beta1/{asset_id}/iam_policy HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/assets/v1beta1/{asset_id}/iam_policy',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/assets/v1beta1/{asset_id}/iam_policy',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /assets/v1beta1/{asset_id}/iam_policy

Returns current IAM policy for the asset. Use returned policy and etag to update policy.

Parameters

Name In Type Required Description
asset_id path string true none

Example responses

200 Response

{
  "etag": "string",
  "policy": {
    "bindings": [
      {
        "account_ids": [
          "2GzbST9DaEPsNcDTaW30GWnfZyw",
          "2GzbTHf7FfMyGv2F71FWwGRzKWb"
        ],
        "role_id": "owner"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "projects.admin"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "accounts.admin"
      }
    ]
  },
  "resource_hierarchy": [
    {
      "id": "elevendata",
      "type": "project"
    }
  ],
  "resource_title": "string"
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.assets.v1beta1.GetIamPolicyResponse
default Default An unexpected error response. google.rpc.Status

SetIamPolicy

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.post('https://mcls-api.mycujoo.tv/assets/v1beta1/{asset_id}/iam_policy', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/assets/v1beta1/{asset_id}/iam_policy", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/assets/v1beta1/{asset_id}/iam_policy HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "etag": "string",
  "policy": {
    "bindings": [
      {
        "account_ids": [
          "2GzbST9DaEPsNcDTaW30GWnfZyw",
          "2GzbTHf7FfMyGv2F71FWwGRzKWb"
        ],
        "role_id": "owner"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "projects.admin"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "accounts.admin"
      }
    ]
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/assets/v1beta1/{asset_id}/iam_policy',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "etag": "string",
  "policy": {
    "bindings": [
      {
        "account_ids": [
          "2GzbST9DaEPsNcDTaW30GWnfZyw",
          "2GzbTHf7FfMyGv2F71FWwGRzKWb"
        ],
        "role_id": "owner"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "projects.admin"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "accounts.admin"
      }
    ]
  }
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/assets/v1beta1/{asset_id}/iam_policy',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /assets/v1beta1/{asset_id}/iam_policy

Set IAM policy for the asset. This method replaces all existing policy bindings for the organization. To prevent overwriting existing policy bindings that were written concurrently, use the etag field to perform a read-modify-write operation. For example: Making a new account to become a organization owner would require reading IAM Policy for the organization, add new binding or update existing binding with role_id: owner, and then set the new policy with etag returned by GetIamPolicy.

Body parameter

{
  "etag": "string",
  "policy": {
    "bindings": [
      {
        "account_ids": [
          "2GzbST9DaEPsNcDTaW30GWnfZyw",
          "2GzbTHf7FfMyGv2F71FWwGRzKWb"
        ],
        "role_id": "owner"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "projects.admin"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "accounts.admin"
      }
    ]
  }
}

Parameters

Name In Type Required Description
asset_id path string true none
body body object true none
ยป etag body string(byte) false none
ยป policy body mycujoo.auth.v1.Policy true Authorization policy.
ยปยป bindings body [mycujoo.auth.v1.Binding] false List of bindings to the policy. If empty, the policy will not have any effect.
ยปยปยป account_ids body [string] false List of account identifiers (referencing mycujoo.accounts.v1.Account) that have the role.
ยปยปยป include_all_organization_accounts body boolean false If this is set to true then the role is granted to all accounts in the organization. It overrides the account_ids field.
ยปยปยป role_id body string false none

Detailed descriptions

ยปยป bindings: List of bindings to the policy. If empty, the policy will not have any effect. Total number of accounts referenced in the bindings should be up to 1500. If same account has multiple roles - it is counted multiple times.

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.assets.v1beta1.SetIamPolicyResponse
default Default An unexpected error response. google.rpc.Status

Returns a single asset

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/assets/v1beta1/{id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/assets/v1beta1/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/assets/v1beta1/{id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/assets/v1beta1/{id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/assets/v1beta1/{id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /assets/v1beta1/{id}

Returns a single asset.

Parameters

Name In Type Required Description
id path string true Unique identifier of the asset

Example responses

400 Response

null

Responses

Status Meaning Description Schema
200 OK A successful response. None
400 Bad Request Bad input parameters Inline
404 Not Found Asset not found Inline
500 Internal Server Error Internal Server Error Inline
default Default An unexpected error response. google.rpc.Status

Response Schema

Deletes a single asset

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.delete('https://mcls-api.mycujoo.tv/assets/v1beta1/{id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "https://mcls-api.mycujoo.tv/assets/v1beta1/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE https://mcls-api.mycujoo.tv/assets/v1beta1/{id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/assets/v1beta1/{id}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/assets/v1beta1/{id}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

DELETE /assets/v1beta1/{id}

Deletes a single asset.

Parameters

Name In Type Required Description
id path string true Unique identifier of the asset

Example responses

400 Response

null

Responses

Status Meaning Description Schema
200 OK A successful response. None
400 Bad Request Bad input parameters Inline
404 Not Found Asset not found Inline
500 Internal Server Error Internal Server Error Inline
default Default An unexpected error response. google.rpc.Status

Response Schema

Updates labels of an asset

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.put('https://mcls-api.mycujoo.tv/assets/v1beta1/{id}/labels', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "https://mcls-api.mycujoo.tv/assets/v1beta1/{id}/labels", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT https://mcls-api.mycujoo.tv/assets/v1beta1/{id}/labels HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "updated_labels": {
    "property1": "string",
    "property2": "string"
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/assets/v1beta1/{id}/labels',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "updated_labels": {
    "property1": "string",
    "property2": "string"
  }
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/assets/v1beta1/{id}/labels',
{
  method: 'PUT',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PUT /assets/v1beta1/{id}/labels

Updates labels of an asset.

Body parameter

{
  "updated_labels": {
    "property1": "string",
    "property2": "string"
  }
}

Parameters

Name In Type Required Description
id path string true Unique id of the asset which labels are supposed to be updated
body body object true none
ยป updated_labels body object false none
ยปยป additionalProperties body string false none

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.assets.v1beta1.UpdateAssetLabelsResponse
400 Bad Request Bad input parameters Inline
404 Not Found Asset not found Inline
500 Internal Server Error Internal Server Error Inline
default Default An unexpected error response. google.rpc.Status

Response Schema

Updates title of an asset

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.patch('https://mcls-api.mycujoo.tv/assets/v1beta1/{id}/title', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "https://mcls-api.mycujoo.tv/assets/v1beta1/{id}/title", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PATCH https://mcls-api.mycujoo.tv/assets/v1beta1/{id}/title HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "updated_title": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/assets/v1beta1/{id}/title',
{
  method: 'PATCH',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "updated_title": "string"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/assets/v1beta1/{id}/title',
{
  method: 'PATCH',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PATCH /assets/v1beta1/{id}/title

Updates title of an asset.

Body parameter

{
  "updated_title": "string"
}

Parameters

Name In Type Required Description
id path string true Unique id of the asset which title is supposed to be updated
body body object true none
ยป updated_title body string true none

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.assets.v1beta1.UpdateAssetTitleResponse
400 Bad Request Bad input parameters Inline
404 Not Found Asset not found Inline
500 Internal Server Error Internal Server Error Inline
default Default An unexpected error response. google.rpc.Status

Response Schema

AuthService

Login

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

r = requests.post('https://mcls-api.mycujoo.tv/auth/v1/login', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/auth/v1/login", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/auth/v1/login HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "email": "string",
  "org_id": "string",
  "password": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/auth/v1/login',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "email": "string",
  "org_id": "string",
  "password": "string"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/auth/v1/login',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /auth/v1/login

This method performs login into platform account

Body parameter

{
  "email": "string",
  "org_id": "string",
  "password": "string"
}

Parameters

Name In Type Required Description
body body mycujoo.auth.v1.LoginRequest true none

Example responses

200 Response

{
  "token": "string"
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.auth.v1.LoginResponse
default Default An unexpected error response. google.rpc.Status

ListAccountResourceBindings returns list of role bindings for the given account

Basically it shows what is accessible for the given account under what role

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/auth/v1/resource_bindings', params={
  'account_id': 'string'
}, headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/auth/v1/resource_bindings", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/auth/v1/resource_bindings?account_id=string HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/auth/v1/resource_bindings?account_id=string',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/auth/v1/resource_bindings?account_id=string',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /auth/v1/resource_bindings

Parameters

Name In Type Required Description
account_id query string true none
page_size query integer(int32) false Maximum number of records to return
page_token query string false If this field is not empty then it must contain the next_page_token value

Detailed descriptions

page_token: If this field is not empty then it must contain the next_page_token value returned by a previous call to this method. Using this field causes the method to return additional results from the previous method call.

Example responses

200 Response

{
  "resource_bindings": [
    {
      "resource": {
        "id": "project-1",
        "type": "project"
      },
      "role_id": "owner"
    },
    {
      "resource": {
        "id": "yyy",
        "type": "event_type"
      },
      "role_id": "event_types.editor"
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.auth.v1.ListAccountResourceBindingsResponse
default Default An unexpected error response. google.rpc.Status

ListRoleGroups

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/auth/v1/role_groups', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/auth/v1/role_groups", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/auth/v1/role_groups HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/auth/v1/role_groups',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/auth/v1/role_groups',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /auth/v1/role_groups

Lists role groups with their roles attached, basically it is a list of roles that are grouped.

Parameters

Name In Type Required Description
page_size query integer(int32) false Maximum number of records to return
page_token query string false If this field is not empty then it must contain the next_page_token value

Detailed descriptions

page_token: If this field is not empty then it must contain the next_page_token value returned by a previous call to this method. Using this field causes the method to return additional results from the previous method call.

Example responses

200 Response

{
  "next_page_token": "string",
  "role_groups": [
    {
      "display_name": "string",
      "id": "string",
      "roles": [
        {
          "display_name": "Owner",
          "id": "owner",
          "permissions": [
            "projects.get",
            "events.get"
          ]
        }
      ]
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.auth.v1.ListRoleGroupsResponse
default Default An unexpected error response. google.rpc.Status

GetRole

Code samples

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('https://mcls-api.mycujoo.tv/auth/v1/roles/{role_id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/auth/v1/roles/{role_id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/auth/v1/roles/{role_id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/auth/v1/roles/{role_id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/auth/v1/roles/{role_id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /auth/v1/roles/{role_id}

returns a Role with permissions assigned to that role

Parameters

Name In Type Required Description
role_id path string true none

Example responses

200 Response

{
  "role": {
    "display_name": "Owner",
    "id": "owner",
    "permissions": [
      "projects.get",
      "events.get"
    ]
  }
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.auth.v1.GetRoleResponse
default Default An unexpected error response. google.rpc.Status

TestIamPermissions

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.post('https://mcls-api.mycujoo.tv/auth/v1/test_iam_permissions', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/auth/v1/test_iam_permissions", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/auth/v1/test_iam_permissions HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "permissions": [
    "projects.create",
    "projects.update",
    "projects.delete"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/auth/v1/test_iam_permissions',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "permissions": [
    "projects.create",
    "projects.update",
    "projects.delete"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/auth/v1/test_iam_permissions',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /auth/v1/test_iam_permissions

This method validates for the current account given list of permissions. It can be used to modify UI to show/hide certain actions based on account permissions.

Body parameter

{
  "permissions": [
    "projects.create",
    "projects.update",
    "projects.delete"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
}

Parameters

Name In Type Required Description
body body mycujoo.auth.v1.TestIamPermissionsRequest true none

Example responses

200 Response

{
  "permissions": [
    "projects.create",
    "projects.update"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.auth.v1.TestIamPermissionsResponse
default Default An unexpected error response. google.rpc.Status

BannersService

UpdateBanner

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

r = requests.patch('https://mcls-api.mycujoo.tv/banners/v1beta1/banner/{banner.id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "https://mcls-api.mycujoo.tv/banners/v1beta1/banner/{banner.id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PATCH https://mcls-api.mycujoo.tv/banners/v1beta1/banner/{banner.id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "assets": {
    "desktop_asset_id": "string",
    "mobile_asset_id": "string"
  },
  "content": {
    "button_text": "string",
    "primary": "string",
    "secondary": "string"
  },
  "last_update_time": "2019-08-24T14:15:22Z",
  "open_in_new_window": true,
  "state": "STATE_UNSPECIFIED",
  "target_url": "string",
  "title": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/banners/v1beta1/banner/{banner.id}',
{
  method: 'PATCH',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "assets": {
    "desktop_asset_id": "string",
    "mobile_asset_id": "string"
  },
  "content": {
    "button_text": "string",
    "primary": "string",
    "secondary": "string"
  },
  "last_update_time": "2019-08-24T14:15:22Z",
  "open_in_new_window": true,
  "state": "STATE_UNSPECIFIED",
  "target_url": "string",
  "title": "string"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/banners/v1beta1/banner/{banner.id}',
{
  method: 'PATCH',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PATCH /banners/v1beta1/banner/{banner.id}

Update a banner Must pass the last_update_time value from response payload of Get API

Body parameter

{
  "assets": {
    "desktop_asset_id": "string",
    "mobile_asset_id": "string"
  },
  "content": {
    "button_text": "string",
    "primary": "string",
    "secondary": "string"
  },
  "last_update_time": "2019-08-24T14:15:22Z",
  "open_in_new_window": true,
  "state": "STATE_UNSPECIFIED",
  "target_url": "string",
  "title": "string"
}

Parameters

Name In Type Required Description
banner.id path string true none
body body object true none
ยป assets body mycujoo.banners.v1beta1.BannerAssets false none
ยปยป desktop_asset_id body string false none
ยปยป mobile_asset_id body string false none
ยป content body mycujoo.banners.v1beta1.BannerContent false none
ยปยป button_text body string false none
ยปยป primary body string false none
ยปยป secondary body string false none
ยป last_update_time body string(date-time) false none
ยป open_in_new_window body boolean false none
ยป state body mycujoo.banners.v1beta1.Banner.State false none
ยป target_url body string false none
ยป title body string false none

Enumerated Values

Parameter Value
ยป state STATE_UNSPECIFIED
ยป state STATE_PUBLISHED
ยป state STATE_HIDDEN

Example responses

200 Response

{
  "assets": {
    "desktop_asset_id": "string",
    "mobile_asset_id": "string"
  },
  "content": {
    "button_text": "string",
    "primary": "string",
    "secondary": "string"
  },
  "id": "string",
  "last_update_time": "2019-08-24T14:15:22Z",
  "open_in_new_window": true,
  "state": "STATE_UNSPECIFIED",
  "target_url": "string",
  "title": "string"
}

Responses

Status Meaning Description Schema
200 OK (empty) mycujoo.banners.v1beta1.Banner
default Default An unexpected error response. google.rpc.Status

DeleteBanner

Code samples

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.delete('https://mcls-api.mycujoo.tv/banners/v1beta1/banner/{banner_id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "https://mcls-api.mycujoo.tv/banners/v1beta1/banner/{banner_id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE https://mcls-api.mycujoo.tv/banners/v1beta1/banner/{banner_id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/banners/v1beta1/banner/{banner_id}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/banners/v1beta1/banner/{banner_id}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

DELETE /banners/v1beta1/banner/{banner_id}

Delete a banner by its ID

Parameters

Name In Type Required Description
banner_id path string true none

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.banners.v1beta1.DeleteBannerResponse
default Default An unexpected error response. google.rpc.Status

ListBannerSets

Code samples

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('https://mcls-api.mycujoo.tv/banners/v1beta1/banner_sets', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/banners/v1beta1/banner_sets", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/banners/v1beta1/banner_sets HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/banners/v1beta1/banner_sets',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/banners/v1beta1/banner_sets',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /banners/v1beta1/banner_sets

List banner sets

Parameters

Name In Type Required Description
filter query string false currently support: ids
order query string false none
page_token query string false none
page_size query integer(int32) false none

Enumerated Values

Parameter Value
order ORDER_UNSPECIFIED
order ORDER_CREATE_TIME_DESC
order ORDER_CREATE_TIME_ASC

Example responses

200 Response

{
  "banner_sets": [
    {
      "banners_count": 0,
      "id": "string",
      "last_update_time": "2019-08-24T14:15:22Z",
      "title": "string"
    }
  ],
  "next_page_token": "string"
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.banners.v1beta1.ListBannerSetsResponse
default Default An unexpected error response. google.rpc.Status

CreateBannerSet

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

r = requests.post('https://mcls-api.mycujoo.tv/banners/v1beta1/banner_sets', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/banners/v1beta1/banner_sets", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/banners/v1beta1/banner_sets HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "id": "string",
  "last_update_time": "2019-08-24T14:15:22Z",
  "title": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/banners/v1beta1/banner_sets',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "id": "string",
  "last_update_time": "2019-08-24T14:15:22Z",
  "title": "string"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/banners/v1beta1/banner_sets',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /banners/v1beta1/banner_sets

Create a new banner set

Body parameter

{
  "id": "string",
  "last_update_time": "2019-08-24T14:15:22Z",
  "title": "string"
}

Parameters

Name In Type Required Description
body body mycujoo.banners.v1beta1.BannerSet true none

Example responses

200 Response

{
  "banners_count": 0,
  "id": "string",
  "last_update_time": "2019-08-24T14:15:22Z",
  "title": "string"
}

Responses

Status Meaning Description Schema
200 OK (empty) mycujoo.banners.v1beta1.BannerSet
default Default An unexpected error response. google.rpc.Status

UpdateBannerSet

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

r = requests.patch('https://mcls-api.mycujoo.tv/banners/v1beta1/banner_sets/{banner_set.id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "https://mcls-api.mycujoo.tv/banners/v1beta1/banner_sets/{banner_set.id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PATCH https://mcls-api.mycujoo.tv/banners/v1beta1/banner_sets/{banner_set.id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "last_update_time": "2019-08-24T14:15:22Z",
  "title": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/banners/v1beta1/banner_sets/{banner_set.id}',
{
  method: 'PATCH',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "last_update_time": "2019-08-24T14:15:22Z",
  "title": "string"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/banners/v1beta1/banner_sets/{banner_set.id}',
{
  method: 'PATCH',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PATCH /banners/v1beta1/banner_sets/{banner_set.id}

Update a banner set Must pass the last_update_time value from response payload of Get API

Body parameter

{
  "last_update_time": "2019-08-24T14:15:22Z",
  "title": "string"
}

Parameters

Name In Type Required Description
banner_set.id path string true none
body body object true none
ยป banners_count body integer(int32) false none
ยป last_update_time body string(date-time) false none
ยป title body string false none

Example responses

200 Response

{
  "banners_count": 0,
  "id": "string",
  "last_update_time": "2019-08-24T14:15:22Z",
  "title": "string"
}

Responses

Status Meaning Description Schema
200 OK (empty) mycujoo.banners.v1beta1.BannerSet
default Default An unexpected error response. google.rpc.Status

GetBannerSet

Code samples

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('https://mcls-api.mycujoo.tv/banners/v1beta1/banner_sets/{banner_set_id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/banners/v1beta1/banner_sets/{banner_set_id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/banners/v1beta1/banner_sets/{banner_set_id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/banners/v1beta1/banner_sets/{banner_set_id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/banners/v1beta1/banner_sets/{banner_set_id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /banners/v1beta1/banner_sets/{banner_set_id}

Get one banner by its ID

Parameters

Name In Type Required Description
banner_set_id path string true none

Example responses

200 Response

{
  "banners_count": 0,
  "id": "string",
  "last_update_time": "2019-08-24T14:15:22Z",
  "title": "string"
}

Responses

Status Meaning Description Schema
200 OK (empty) mycujoo.banners.v1beta1.BannerSet
default Default An unexpected error response. google.rpc.Status

DeleteBannerSet

Code samples

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.delete('https://mcls-api.mycujoo.tv/banners/v1beta1/banner_sets/{banner_set_id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "https://mcls-api.mycujoo.tv/banners/v1beta1/banner_sets/{banner_set_id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE https://mcls-api.mycujoo.tv/banners/v1beta1/banner_sets/{banner_set_id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/banners/v1beta1/banner_sets/{banner_set_id}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/banners/v1beta1/banner_sets/{banner_set_id}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

DELETE /banners/v1beta1/banner_sets/{banner_set_id}

Delete a banner set by its ID

Parameters

Name In Type Required Description
banner_set_id path string true none

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.banners.v1beta1.DeleteBannerSetResponse
default Default An unexpected error response. google.rpc.Status

ListAllBannersBySetID

Code samples

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('https://mcls-api.mycujoo.tv/banners/v1beta1/banner_sets/{banner_set_id}/banners', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/banners/v1beta1/banner_sets/{banner_set_id}/banners", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/banners/v1beta1/banner_sets/{banner_set_id}/banners HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/banners/v1beta1/banner_sets/{banner_set_id}/banners',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/banners/v1beta1/banner_sets/{banner_set_id}/banners',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /banners/v1beta1/banner_sets/{banner_set_id}/banners

List all banners of a banner set by banner set id

Parameters

Name In Type Required Description
banner_set_id path string true none

Example responses

200 Response

{
  "banners": [
    {
      "assets": {
        "desktop_asset_id": "string",
        "mobile_asset_id": "string"
      },
      "content": {
        "button_text": "string",
        "primary": "string",
        "secondary": "string"
      },
      "id": "string",
      "last_update_time": "2019-08-24T14:15:22Z",
      "open_in_new_window": true,
      "state": "STATE_UNSPECIFIED",
      "target_url": "string",
      "title": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.banners.v1beta1.ListAllBannersBySetIDResponse
default Default An unexpected error response. google.rpc.Status

EditAllBannersInSet

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

r = requests.put('https://mcls-api.mycujoo.tv/banners/v1beta1/banner_sets/{banner_set_id}/banners', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "https://mcls-api.mycujoo.tv/banners/v1beta1/banner_sets/{banner_set_id}/banners", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT https://mcls-api.mycujoo.tv/banners/v1beta1/banner_sets/{banner_set_id}/banners HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "banner_ids": [
    "string"
  ]
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/banners/v1beta1/banner_sets/{banner_set_id}/banners',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "banner_ids": [
    "string"
  ]
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/banners/v1beta1/banner_sets/{banner_set_id}/banners',
{
  method: 'PUT',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PUT /banners/v1beta1/banner_sets/{banner_set_id}/banners

Edit all banners in a banner set, including add / remove / reorder

Body parameter

{
  "banner_ids": [
    "string"
  ]
}

Parameters

Name In Type Required Description
banner_set_id path string true none
body body object true none
ยป banner_ids body [string] false none

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.banners.v1beta1.UpdateBannerSetBannersResponse
default Default An unexpected error response. google.rpc.Status

AddBannerToSet

Code samples

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.post('https://mcls-api.mycujoo.tv/banners/v1beta1/banner_sets/{banner_set_id}/banners/{banner_id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/banners/v1beta1/banner_sets/{banner_set_id}/banners/{banner_id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/banners/v1beta1/banner_sets/{banner_set_id}/banners/{banner_id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/banners/v1beta1/banner_sets/{banner_set_id}/banners/{banner_id}',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/banners/v1beta1/banner_sets/{banner_set_id}/banners/{banner_id}',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /banners/v1beta1/banner_sets/{banner_set_id}/banners/{banner_id}

Add a banner to a banner set New banner will be added to the top

Parameters

Name In Type Required Description
banner_set_id path string true none
banner_id path string true none

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.banners.v1beta1.AddBannerToSetResponse
default Default An unexpected error response. google.rpc.Status

RemoveBannerFromSet

Code samples

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.delete('https://mcls-api.mycujoo.tv/banners/v1beta1/banner_sets/{banner_set_id}/banners/{banner_id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "https://mcls-api.mycujoo.tv/banners/v1beta1/banner_sets/{banner_set_id}/banners/{banner_id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE https://mcls-api.mycujoo.tv/banners/v1beta1/banner_sets/{banner_set_id}/banners/{banner_id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/banners/v1beta1/banner_sets/{banner_set_id}/banners/{banner_id}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/banners/v1beta1/banner_sets/{banner_set_id}/banners/{banner_id}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

DELETE /banners/v1beta1/banner_sets/{banner_set_id}/banners/{banner_id}

Remove a banner from a banner set

Parameters

Name In Type Required Description
banner_set_id path string true none
banner_id path string true none

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.banners.v1beta1.RemoveBannerFromSetResponse
default Default An unexpected error response. google.rpc.Status

ListBanners

Code samples

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('https://mcls-api.mycujoo.tv/banners/v1beta1/banners', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/banners/v1beta1/banners", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/banners/v1beta1/banners HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/banners/v1beta1/banners',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/banners/v1beta1/banners',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /banners/v1beta1/banners

List banners

Parameters

Name In Type Required Description
filter query string false currently support: ids, states
order query string false none
page_token query string false none
page_size query integer(int32) false none

Enumerated Values

Parameter Value
order ORDER_UNSPECIFIED
order ORDER_CREATE_TIME_DESC
order ORDER_CREATE_TIME_ASC

Example responses

200 Response

{
  "banners": [
    {
      "assets": {
        "desktop_asset_id": "string",
        "mobile_asset_id": "string"
      },
      "content": {
        "button_text": "string",
        "primary": "string",
        "secondary": "string"
      },
      "id": "string",
      "last_update_time": "2019-08-24T14:15:22Z",
      "open_in_new_window": true,
      "state": "STATE_UNSPECIFIED",
      "target_url": "string",
      "title": "string"
    }
  ],
  "next_page_token": "string"
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.banners.v1beta1.ListBannersResponse
default Default An unexpected error response. google.rpc.Status

CreateBanner

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

r = requests.post('https://mcls-api.mycujoo.tv/banners/v1beta1/banners', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/banners/v1beta1/banners", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/banners/v1beta1/banners HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "assets": {
    "desktop_asset_id": "string",
    "mobile_asset_id": "string"
  },
  "content": {
    "button_text": "string",
    "primary": "string",
    "secondary": "string"
  },
  "last_update_time": "2019-08-24T14:15:22Z",
  "open_in_new_window": true,
  "state": "STATE_UNSPECIFIED",
  "target_url": "string",
  "title": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/banners/v1beta1/banners',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "assets": {
    "desktop_asset_id": "string",
    "mobile_asset_id": "string"
  },
  "content": {
    "button_text": "string",
    "primary": "string",
    "secondary": "string"
  },
  "last_update_time": "2019-08-24T14:15:22Z",
  "open_in_new_window": true,
  "state": "STATE_UNSPECIFIED",
  "target_url": "string",
  "title": "string"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/banners/v1beta1/banners',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /banners/v1beta1/banners

Create a new banner

Body parameter

{
  "assets": {
    "desktop_asset_id": "string",
    "mobile_asset_id": "string"
  },
  "content": {
    "button_text": "string",
    "primary": "string",
    "secondary": "string"
  },
  "last_update_time": "2019-08-24T14:15:22Z",
  "open_in_new_window": true,
  "state": "STATE_UNSPECIFIED",
  "target_url": "string",
  "title": "string"
}

Parameters

Name In Type Required Description
body body mycujoo.banners.v1beta1.Banner true none

Example responses

200 Response

{
  "assets": {
    "desktop_asset_id": "string",
    "mobile_asset_id": "string"
  },
  "content": {
    "button_text": "string",
    "primary": "string",
    "secondary": "string"
  },
  "id": "string",
  "last_update_time": "2019-08-24T14:15:22Z",
  "open_in_new_window": true,
  "state": "STATE_UNSPECIFIED",
  "target_url": "string",
  "title": "string"
}

Responses

Status Meaning Description Schema
200 OK (empty) mycujoo.banners.v1beta1.Banner
default Default An unexpected error response. google.rpc.Status

GetBanner

Code samples

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('https://mcls-api.mycujoo.tv/banners/v1beta1/banners/{banner_id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/banners/v1beta1/banners/{banner_id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/banners/v1beta1/banners/{banner_id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/banners/v1beta1/banners/{banner_id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/banners/v1beta1/banners/{banner_id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /banners/v1beta1/banners/{banner_id}

Get one banner by its ID

Parameters

Name In Type Required Description
banner_id path string true none

Example responses

200 Response

{
  "assets": {
    "desktop_asset_id": "string",
    "mobile_asset_id": "string"
  },
  "content": {
    "button_text": "string",
    "primary": "string",
    "secondary": "string"
  },
  "id": "string",
  "last_update_time": "2019-08-24T14:15:22Z",
  "open_in_new_window": true,
  "state": "STATE_UNSPECIFIED",
  "target_url": "string",
  "title": "string"
}

Responses

Status Meaning Description Schema
200 OK (empty) mycujoo.banners.v1beta1.Banner
default Default An unexpected error response. google.rpc.Status

ListAllSetsByBannerID

Code samples

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('https://mcls-api.mycujoo.tv/banners/v1beta1/banners/{banner_id}/banner_sets', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/banners/v1beta1/banners/{banner_id}/banner_sets", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/banners/v1beta1/banners/{banner_id}/banner_sets HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/banners/v1beta1/banners/{banner_id}/banner_sets',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/banners/v1beta1/banners/{banner_id}/banner_sets',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /banners/v1beta1/banners/{banner_id}/banner_sets

List all banner sets of a banner by banner id

Parameters

Name In Type Required Description
banner_id path string true none

Example responses

200 Response

{
  "banner_sets": [
    {
      "banners_count": 0,
      "id": "string",
      "last_update_time": "2019-08-24T14:15:22Z",
      "title": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.banners.v1beta1.ListAllSetsByBannerIDResponse
default Default An unexpected error response. google.rpc.Status

EntitlementsService

EntitlementsService_UpdateContentProtection2

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.put('https://mcls-api.mycujoo.tv/entitlements/content-protection/v1/{content_reference.type}/{content_reference.id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "https://mcls-api.mycujoo.tv/entitlements/content-protection/v1/{content_reference.type}/{content_reference.id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT https://mcls-api.mycujoo.tv/entitlements/content-protection/v1/{content_reference.type}/{content_reference.id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "content_reference": {},
  "is_protected": true
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/entitlements/content-protection/v1/{content_reference.type}/{content_reference.id}',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "content_reference": {},
  "is_protected": true
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/entitlements/content-protection/v1/{content_reference.type}/{content_reference.id}',
{
  method: 'PUT',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PUT /entitlements/content-protection/v1/{content_reference.type}/{content_reference.id}

Body parameter

{
  "content_reference": {},
  "is_protected": true
}

Parameters

Name In Type Required Description
content_reference.type path string true Type of the content (stream, event or package)
content_reference.id path string true ID of the content
body body object true none
ยป content_reference body object false Content reference. For now only events are supported.
ยป is_protected body boolean true none

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.entitlements.v1.UpdateContentProtectionResponse
default Default An unexpected error response. google.rpc.Status

EntitlementsService_UpdateContentProtection

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.put('https://mcls-api.mycujoo.tv/entitlements/content-protection/v1beta1/{content_reference.type}/{content_reference.id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "https://mcls-api.mycujoo.tv/entitlements/content-protection/v1beta1/{content_reference.type}/{content_reference.id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT https://mcls-api.mycujoo.tv/entitlements/content-protection/v1beta1/{content_reference.type}/{content_reference.id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "content_reference": {},
  "is_protected": true
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/entitlements/content-protection/v1beta1/{content_reference.type}/{content_reference.id}',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "content_reference": {},
  "is_protected": true
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/entitlements/content-protection/v1beta1/{content_reference.type}/{content_reference.id}',
{
  method: 'PUT',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PUT /entitlements/content-protection/v1beta1/{content_reference.type}/{content_reference.id}

Body parameter

{
  "content_reference": {},
  "is_protected": true
}

Parameters

Name In Type Required Description
content_reference.type path string true Type of the content (stream, event or package)
content_reference.id path string true ID of the content
body body object true none
ยป content_reference body object false Content reference. For now only events are supported.
ยป is_protected body boolean true none

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.entitlements.v1.UpdateContentProtectionResponse
default Default An unexpected error response. google.rpc.Status

ListEntitlements returns list of user and content_reference pairs that match specified filters

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/entitlements/v1', params={
  'page_size': '0',  'content_reference.type': 'string',  'content_reference.id': 'string',  'origin.type': 'string',  'origin.id': 'string'
}, headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/entitlements/v1", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/entitlements/v1?page_size=0&content_reference%2Etype=string&content_reference%2Eid=string&origin%2Etype=string&origin%2Eid=string HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/entitlements/v1?page_size=0&content_reference%2Etype=string&content_reference%2Eid=string&origin%2Etype=string&origin%2Eid=string',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/entitlements/v1?page_size=0&content_reference%2Etype=string&content_reference%2Eid=string&origin%2Etype=string&origin%2Eid=string',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /entitlements/v1

Parameters

Name In Type Required Description
page_size query integer(int32) true Maximum number of records to return
page_token query string false The pagination token in the list request.
identity_id query string false Filters entitlements by identity id
content_reference.type query string true Type of the content (stream, event or package)
content_reference.id query string true ID of the content
origin.type query string true Origin type (i.e. 'payment').
origin.id query string true ID of the event that is the reason for the entitlement.
expiration_time_start query string(date-time) false none
expiration_time_end query string(date-time) false none
filter query string false Filters on Entitlement Fields.

Detailed descriptions

filter: Filters on Entitlement Fields. Available filters: content_reference.type: content_reference.id: origin.type:payment origin.id: identity_id: expiration_time>="" Example Query: content_reference.type:stream content_reference.id:123 expiration_time>="2020-01-01T00:00:00Z"

Example responses

200 Response

{
  "entitlements": [
    {
      "concurrency_limit": "string",
      "content_reference": {
        "id": "string",
        "type": "string"
      },
      "expiration_time": "2019-08-24T14:15:22Z",
      "identity_id": "string",
      "origin": {
        "id": "string",
        "type": "string"
      }
    }
  ],
  "next_page_token": "string"
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.entitlements.v1.ListEntitlementsResponse
default Default An unexpected error response. google.rpc.Status

CheckEntitlement returns boolean to indicate if user has access to specific content

Code samples

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('https://mcls-api.mycujoo.tv/entitlements/v1/{identity_id}/{content_reference.type}/{content_reference.id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/entitlements/v1/{identity_id}/{content_reference.type}/{content_reference.id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/entitlements/v1/{identity_id}/{content_reference.type}/{content_reference.id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/entitlements/v1/{identity_id}/{content_reference.type}/{content_reference.id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/entitlements/v1/{identity_id}/{content_reference.type}/{content_reference.id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /entitlements/v1/{identity_id}/{content_reference.type}/{content_reference.id}

Parameters

Name In Type Required Description
identity_id path string true ID of the identity
content_reference.type path string true Type of the content (stream, event or package)
content_reference.id path string true ID of the content

Example responses

200 Response

{
  "is_entitled": true
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.entitlements.v1.CheckEntitlementResponse
default Default An unexpected error response. google.rpc.Status

UpsertEntitlement updates entitlement in the service if it already exists or creates new one if it doesn't.

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.put('https://mcls-api.mycujoo.tv/entitlements/v1beta1/{identity_id}/{content_reference.type}/{content_reference.id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "https://mcls-api.mycujoo.tv/entitlements/v1beta1/{identity_id}/{content_reference.type}/{content_reference.id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT https://mcls-api.mycujoo.tv/entitlements/v1beta1/{identity_id}/{content_reference.type}/{content_reference.id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "concurrency_limit": "string",
  "content_reference": {},
  "expiration_time": "2019-08-24T14:15:22Z",
  "origin": {
    "id": "string",
    "type": "string"
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/entitlements/v1beta1/{identity_id}/{content_reference.type}/{content_reference.id}',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "concurrency_limit": "string",
  "content_reference": {},
  "expiration_time": "2019-08-24T14:15:22Z",
  "origin": {
    "id": "string",
    "type": "string"
  }
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/entitlements/v1beta1/{identity_id}/{content_reference.type}/{content_reference.id}',
{
  method: 'PUT',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PUT /entitlements/v1beta1/{identity_id}/{content_reference.type}/{content_reference.id}

Body parameter

{
  "concurrency_limit": "string",
  "content_reference": {},
  "expiration_time": "2019-08-24T14:15:22Z",
  "origin": {
    "id": "string",
    "type": "string"
  }
}

Parameters

Name In Type Required Description
identity_id path string true ID of the identity (could be either user id, token id or any id identifying
content_reference.type path string true Type of the content (stream, event or package)
content_reference.id path string true ID of the content
body body object true none
ยป concurrency_limit body string(int64) false Concurrency limit for the entitlement. 0 means no limit.
ยป content_reference body object false none
ยป expiration_time body string(date-time) false Time when entitlement expires and identity lose access to the content. 0 means never expires.
ยป origin body mycujoo.entitlements.v1.Origin false Preceding event that is the reason for the content to be entitled (for instance, payment).
ยปยป id body string true ID of the event that is the reason for the entitlement.
ยปยป type body string true Origin type (i.e. 'payment').

Detailed descriptions

identity_id: ID of the identity (could be either user id, token id or any id identifying single entity that is entitled to the content)

ยป concurrency_limit: Concurrency limit for the entitlement. 0 means no limit. It is defined at the entitlement level, not at the content level because there could be multiple entitlements for the same content with different limits. If limit is reached - oldest playback session will be closed.

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.entitlements.v1.UpsertEntitlementResponse
default Default An unexpected error response. google.rpc.Status

DeleteEntitlement removes entitlement from the service

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.delete('https://mcls-api.mycujoo.tv/entitlements/v1beta1/{identity_id}/{content_reference.type}/{content_reference.id}', params={
  'origin.type': 'string',  'origin.id': 'string'
}, headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "https://mcls-api.mycujoo.tv/entitlements/v1beta1/{identity_id}/{content_reference.type}/{content_reference.id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE https://mcls-api.mycujoo.tv/entitlements/v1beta1/{identity_id}/{content_reference.type}/{content_reference.id}?origin%2Etype=string&origin%2Eid=string HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/entitlements/v1beta1/{identity_id}/{content_reference.type}/{content_reference.id}?origin%2Etype=string&origin%2Eid=string',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/entitlements/v1beta1/{identity_id}/{content_reference.type}/{content_reference.id}?origin%2Etype=string&origin%2Eid=string',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

DELETE /entitlements/v1beta1/{identity_id}/{content_reference.type}/{content_reference.id}

Parameters

Name In Type Required Description
identity_id path string true ID of the identity
content_reference.type path string true Type of the content (stream, event or package)
content_reference.id path string true ID of the content
origin.type query string true Origin type (i.e. 'payment').
origin.id query string true ID of the event that is the reason for the entitlement.

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.entitlements.v1.DeleteEntitlementResponse
default Default An unexpected error response. google.rpc.Status

EventService

List events

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/events/v1', params={
  'page_size': '0'
}, headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/events/v1", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/events/v1?page_size=0 HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/events/v1?page_size=0',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/events/v1?page_size=0',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /events/v1

By passing in the appropriate options, you can search for available events in the system

Parameters

Name In Type Required Description
order_by query string false Specifies the result ordering for List requests.
order_by_meta_field query string false Specifies the result ordering for List requests by metadata fields.
page_size query integer(int32) true Maximum number of records to return
page_token query string false The pagination token in the List request.
status query array[string] false Filter results by event status
includes query array[string] false Specifies what response metadata should include.
stream_ids query array[string] false Filter results by events that contain specified stream ids
filter query string false Filter results against metadata fields by one or more conditions that must
start_time_from query string(date-time) false Filter results by event start_time range
start_time_to query string(date-time) false Filter results by event start_time range
project_id query string false ID of the Project to list events for
labels[string] query string false This is a request variable of the map type. The query format is "map_name[key]=value", e.g. If the map name is Age, the key type is string, and the value type is integer, the query parameter is expressed as Age["bob"]=18

Detailed descriptions

order_by: Specifies the result ordering for List requests. Can't be used together with order_by_meta_field

order_by_meta_field: Specifies the result ordering for List requests by metadata fields. Supported format is "{filter}:{order}", eq "teamHome:ASC". Only root level fields of metadata are supported Can't be used together with order_by

status: Filter results by event status

includes: Specifies what response metadata should include. e.g. when 'INCLUDE_TOTAL_SIZE' is passed, response will include total size of the result

filter: Filter results against metadata fields by one or more conditions that must be satisfied for an event to be returned (case-sensitive) Filter syntax is a list of terms separated by space. Each term includes field name and value separated by colon. You can filter results using top level field from metadata. For example: "?filter=competition_id:1lgyUErZ7TZEbUasQ4hA5u1LL95%20home_team_id:1lgycVo5SGYaFXqVliOg4LrcTun"

Enumerated Values

Parameter Value
order_by ORDER_UNSPECIFIED
order_by ORDER_DATE_ASC
order_by ORDER_DATE_DESC
status EVENT_STATUS_UNSPECIFIED
status EVENT_STATUS_SCHEDULED
status EVENT_STATUS_RESCHEDULED
status EVENT_STATUS_CANCELLED
status EVENT_STATUS_POSTPONED
status EVENT_STATUS_DELAYED
status EVENT_STATUS_STARTED
status EVENT_STATUS_PAUSED
status EVENT_STATUS_SUSPENDED
status EVENT_STATUS_FINISHED
includes INCLUDE_UNSPECIFIED
includes INCLUDE_TOTAL_SIZE

Example responses

200 Response

{
  "events": [
    {
      "id": "ck9poahb1000601laar5w4dfd",
      "title": "2020 MyCujoo Champions League Final"
    }
  ],
  "next_page_token": "string",
  "previous_page_token": "string",
  "total_size": 0
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.events.v1.ListResponse
default Default An unexpected error response. google.rpc.Status

Create event

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.post('https://mcls-api.mycujoo.tv/events/v1', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/events/v1", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/events/v1 HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "content_visibility": "CONTENT_VISIBILITY_UNSPECIFIED",
  "description": "string",
  "is_test": true,
  "labels": {
    "property1": "string",
    "property2": "string"
  },
  "location": {
    "online": "string",
    "physical": {
      "city": "Amsterdam",
      "continent_code": "EU",
      "country_code": "NL",
      "venue": "Johan Cruijff ArenA"
    }
  },
  "metadata": {
    "data": {},
    "schema_id": "string"
  },
  "organiser": "string",
  "poster_asset_id": "string",
  "poster_url": "string",
  "project_id": "string",
  "start_time": "2019-08-24T14:15:22Z",
  "thumbnail_asset_id": "string",
  "thumbnail_url": "string",
  "timezone": "string",
  "title": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/events/v1',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "content_visibility": "CONTENT_VISIBILITY_UNSPECIFIED",
  "description": "string",
  "is_test": true,
  "labels": {
    "property1": "string",
    "property2": "string"
  },
  "location": {
    "online": "string",
    "physical": {
      "city": "Amsterdam",
      "continent_code": "EU",
      "country_code": "NL",
      "venue": "Johan Cruijff ArenA"
    }
  },
  "metadata": {
    "data": {},
    "schema_id": "string"
  },
  "organiser": "string",
  "poster_asset_id": "string",
  "poster_url": "string",
  "project_id": "string",
  "start_time": "2019-08-24T14:15:22Z",
  "thumbnail_asset_id": "string",
  "thumbnail_url": "string",
  "timezone": "string",
  "title": "string"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/events/v1',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /events/v1

Adds an event to the system

Body parameter

{
  "content_visibility": "CONTENT_VISIBILITY_UNSPECIFIED",
  "description": "string",
  "is_test": true,
  "labels": {
    "property1": "string",
    "property2": "string"
  },
  "location": {
    "online": "string",
    "physical": {
      "city": "Amsterdam",
      "continent_code": "EU",
      "country_code": "NL",
      "venue": "Johan Cruijff ArenA"
    }
  },
  "metadata": {
    "data": {},
    "schema_id": "string"
  },
  "organiser": "string",
  "poster_asset_id": "string",
  "poster_url": "string",
  "project_id": "string",
  "start_time": "2019-08-24T14:15:22Z",
  "thumbnail_asset_id": "string",
  "thumbnail_url": "string",
  "timezone": "string",
  "title": "string"
}

Parameters

Name In Type Required Description
body body mycujoo.events.v1.CreateRequest true none

Example responses

200 Response

{
  "id": "ck9poahb1000601laar5w4dfd",
  "title": "2020 MyCujoo Champions League Final"
}

Responses

Status Meaning Description Schema
200 OK Event that was created mycujoo.events.v1.Event
default Default An unexpected error response. google.rpc.Status

TestIamPermissions

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.post('https://mcls-api.mycujoo.tv/events/v1/test_iam_permissions', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/events/v1/test_iam_permissions", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/events/v1/test_iam_permissions HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "permissions": [
    "projects.create",
    "projects.update",
    "projects.delete"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/events/v1/test_iam_permissions',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "permissions": [
    "projects.create",
    "projects.update",
    "projects.delete"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/events/v1/test_iam_permissions',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /events/v1/test_iam_permissions

This method validates for the current account given list of permissions. It can be used to modify UI to show/hide certain actions based on account permissions.

Body parameter

{
  "permissions": [
    "projects.create",
    "projects.update",
    "projects.delete"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
}

Parameters

Name In Type Required Description
body body mycujoo.events.v1.TestIamPermissionsRequest true none

Example responses

200 Response

{
  "permissions": [
    "projects.create",
    "projects.update"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.events.v1.TestIamPermissionsResponse
default Default An unexpected error response. google.rpc.Status

GetIamPolicy

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/events/v1/{event_id}/iam_policy', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/events/v1/{event_id}/iam_policy", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/events/v1/{event_id}/iam_policy HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/events/v1/{event_id}/iam_policy',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/events/v1/{event_id}/iam_policy',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /events/v1/{event_id}/iam_policy

Returns current IAM policy for the event. Use returned policy and etag to update policy.

Parameters

Name In Type Required Description
event_id path string true none

Example responses

200 Response

{
  "etag": "string",
  "policy": {
    "bindings": [
      {
        "account_ids": [
          "2GzbST9DaEPsNcDTaW30GWnfZyw",
          "2GzbTHf7FfMyGv2F71FWwGRzKWb"
        ],
        "role_id": "owner"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "projects.admin"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "accounts.admin"
      }
    ]
  },
  "resource_hierarchy": [
    {
      "id": "elevendata",
      "type": "project"
    }
  ],
  "resource_title": "string"
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.events.v1.GetIamPolicyResponse
default Default An unexpected error response. google.rpc.Status

SetIamPolicy

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.post('https://mcls-api.mycujoo.tv/events/v1/{event_id}/iam_policy', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/events/v1/{event_id}/iam_policy", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/events/v1/{event_id}/iam_policy HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "etag": "string",
  "policy": {
    "bindings": [
      {
        "account_ids": [
          "2GzbST9DaEPsNcDTaW30GWnfZyw",
          "2GzbTHf7FfMyGv2F71FWwGRzKWb"
        ],
        "role_id": "owner"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "projects.admin"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "accounts.admin"
      }
    ]
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/events/v1/{event_id}/iam_policy',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "etag": "string",
  "policy": {
    "bindings": [
      {
        "account_ids": [
          "2GzbST9DaEPsNcDTaW30GWnfZyw",
          "2GzbTHf7FfMyGv2F71FWwGRzKWb"
        ],
        "role_id": "owner"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "projects.admin"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "accounts.admin"
      }
    ]
  }
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/events/v1/{event_id}/iam_policy',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /events/v1/{event_id}/iam_policy

Set IAM policy for the event. This method replaces all existing policy bindings for the event. To prevent overwriting existing policy bindings that were written concurrently, use the etag field to perform a read-modify-write operation. For example: Making a new account to become an event editor would require reading IAM Policy for the event, add a new binding or update existing binding with role_id: events.editor, and then set the new policy with etag returned by GetIamPolicy.

Body parameter

{
  "etag": "string",
  "policy": {
    "bindings": [
      {
        "account_ids": [
          "2GzbST9DaEPsNcDTaW30GWnfZyw",
          "2GzbTHf7FfMyGv2F71FWwGRzKWb"
        ],
        "role_id": "owner"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "projects.admin"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "accounts.admin"
      }
    ]
  }
}

Parameters

Name In Type Required Description
event_id path string true none
body body object true none
ยป etag body string(byte) false none
ยป policy body mycujoo.auth.v1.Policy true Authorization policy.
ยปยป bindings body [mycujoo.auth.v1.Binding] false List of bindings to the policy. If empty, the policy will not have any effect.
ยปยปยป account_ids body [string] false List of account identifiers (referencing mycujoo.accounts.v1.Account) that have the role.
ยปยปยป include_all_organization_accounts body boolean false If this is set to true then the role is granted to all accounts in the organization. It overrides the account_ids field.
ยปยปยป role_id body string false none

Detailed descriptions

ยปยป bindings: List of bindings to the policy. If empty, the policy will not have any effect. Total number of accounts referenced in the bindings should be up to 1500. If same account has multiple roles - it is counted multiple times.

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.events.v1.SetIamPolicyResponse
default Default An unexpected error response. google.rpc.Status

Add stream to event

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.post('https://mcls-api.mycujoo.tv/events/v1/{event_id}/stream/{stream_id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/events/v1/{event_id}/stream/{stream_id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/events/v1/{event_id}/stream/{stream_id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/events/v1/{event_id}/stream/{stream_id}',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/events/v1/{event_id}/stream/{stream_id}',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /events/v1/{event_id}/stream/{stream_id}

Adds stream to an event

Parameters

Name In Type Required Description
event_id path string true none
stream_id path string true none

Example responses

200 Response

{
  "event_id": "string",
  "stream_id": "string"
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.events.v1.AddStreamResponse
default Default An unexpected error response. google.rpc.Status

Remove stream from event

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.delete('https://mcls-api.mycujoo.tv/events/v1/{event_id}/stream/{stream_id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "https://mcls-api.mycujoo.tv/events/v1/{event_id}/stream/{stream_id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE https://mcls-api.mycujoo.tv/events/v1/{event_id}/stream/{stream_id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/events/v1/{event_id}/stream/{stream_id}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/events/v1/{event_id}/stream/{stream_id}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

DELETE /events/v1/{event_id}/stream/{stream_id}

Removes stream from an event

Parameters

Name In Type Required Description
event_id path string true none
stream_id path string true none

Example responses

200 Response

{
  "event_id": "string",
  "stream_id": "string"
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.events.v1.RemoveStreamResponse
default Default An unexpected error response. google.rpc.Status

Add timeline to event

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.post('https://mcls-api.mycujoo.tv/events/v1/{event_id}/timeline/{timeline_id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/events/v1/{event_id}/timeline/{timeline_id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/events/v1/{event_id}/timeline/{timeline_id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/events/v1/{event_id}/timeline/{timeline_id}',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/events/v1/{event_id}/timeline/{timeline_id}',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /events/v1/{event_id}/timeline/{timeline_id}

Adds timeline to an event

Parameters

Name In Type Required Description
event_id path string true none
timeline_id path string true none

Example responses

200 Response

{
  "event_id": "string",
  "timeline_id": "string"
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.events.v1.AddTimelineResponse
default Default An unexpected error response. google.rpc.Status

Remove timeline from event

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.delete('https://mcls-api.mycujoo.tv/events/v1/{event_id}/timeline/{timeline_id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "https://mcls-api.mycujoo.tv/events/v1/{event_id}/timeline/{timeline_id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE https://mcls-api.mycujoo.tv/events/v1/{event_id}/timeline/{timeline_id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/events/v1/{event_id}/timeline/{timeline_id}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/events/v1/{event_id}/timeline/{timeline_id}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

DELETE /events/v1/{event_id}/timeline/{timeline_id}

Removes timeline from an event

Parameters

Name In Type Required Description
event_id path string true none
timeline_id path string true none

Example responses

200 Response

{
  "event_id": "string",
  "timeline_id": "string"
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.events.v1.RemoveTimelineResponse
default Default An unexpected error response. google.rpc.Status

Get event

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/events/v1/{id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/events/v1/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/events/v1/{id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/events/v1/{id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/events/v1/{id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /events/v1/{id}

Gets event for a specific account by ID

Parameters

Name In Type Required Description
id path string true ID of the event to retrieve

Example responses

200 Response

{
  "id": "ck9poahb1000601laar5w4dfd",
  "title": "2020 MyCujoo Champions League Final"
}

Responses

Status Meaning Description Schema
200 OK If found it will contain event mycujoo.events.v1.Event
default Default An unexpected error response. google.rpc.Status

Delete event

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.delete('https://mcls-api.mycujoo.tv/events/v1/{id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "https://mcls-api.mycujoo.tv/events/v1/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE https://mcls-api.mycujoo.tv/events/v1/{id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/events/v1/{id}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/events/v1/{id}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

DELETE /events/v1/{id}

Gets event for a specific account by ID

Parameters

Name In Type Required Description
id path string true Resource ID that should be deleted

Example responses

200 Response

{
  "id": "string"
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.events.v1.DeleteResponse
default Default An unexpected error response. google.rpc.Status

Update event

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.patch('https://mcls-api.mycujoo.tv/events/v1/{id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "https://mcls-api.mycujoo.tv/events/v1/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PATCH https://mcls-api.mycujoo.tv/events/v1/{id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "content_visibility": "CONTENT_VISIBILITY_UNSPECIFIED",
  "description": "string",
  "is_test": true,
  "labels": {
    "property1": "string",
    "property2": "string"
  },
  "location": {
    "online": "string",
    "physical": {
      "city": "Amsterdam",
      "continent_code": "EU",
      "country_code": "NL",
      "venue": "Johan Cruijff ArenA"
    }
  },
  "metadata": {
    "data": {},
    "schema_id": "string"
  },
  "organiser": "string",
  "poster_asset_id": "string",
  "poster_url": "string",
  "start_time": "2019-08-24T14:15:22Z",
  "status": "EVENT_STATUS_UNSPECIFIED",
  "thumbnail_asset_id": "string",
  "thumbnail_url": "string",
  "timezone": "string",
  "title": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/events/v1/{id}',
{
  method: 'PATCH',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "content_visibility": "CONTENT_VISIBILITY_UNSPECIFIED",
  "description": "string",
  "is_test": true,
  "labels": {
    "property1": "string",
    "property2": "string"
  },
  "location": {
    "online": "string",
    "physical": {
      "city": "Amsterdam",
      "continent_code": "EU",
      "country_code": "NL",
      "venue": "Johan Cruijff ArenA"
    }
  },
  "metadata": {
    "data": {},
    "schema_id": "string"
  },
  "organiser": "string",
  "poster_asset_id": "string",
  "poster_url": "string",
  "start_time": "2019-08-24T14:15:22Z",
  "status": "EVENT_STATUS_UNSPECIFIED",
  "thumbnail_asset_id": "string",
  "thumbnail_url": "string",
  "timezone": "string",
  "title": "string"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/events/v1/{id}',
{
  method: 'PATCH',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PATCH /events/v1/{id}

Updates an event in the system

Body parameter

{
  "content_visibility": "CONTENT_VISIBILITY_UNSPECIFIED",
  "description": "string",
  "is_test": true,
  "labels": {
    "property1": "string",
    "property2": "string"
  },
  "location": {
    "online": "string",
    "physical": {
      "city": "Amsterdam",
      "continent_code": "EU",
      "country_code": "NL",
      "venue": "Johan Cruijff ArenA"
    }
  },
  "metadata": {
    "data": {},
    "schema_id": "string"
  },
  "organiser": "string",
  "poster_asset_id": "string",
  "poster_url": "string",
  "start_time": "2019-08-24T14:15:22Z",
  "status": "EVENT_STATUS_UNSPECIFIED",
  "thumbnail_asset_id": "string",
  "thumbnail_url": "string",
  "timezone": "string",
  "title": "string"
}

Parameters

Name In Type Required Description
id path string true ID of the event
body body mycujoo.events.v1.UpdateRequestFields true Fields to update

Example responses

200 Response

{
  "id": "ck9poahb1000601laar5w4dfd",
  "title": "2020 MyCujoo Champions League Final"
}

Responses

Status Meaning Description Schema
200 OK (empty) mycujoo.events.v1.Event
default Default An unexpected error response. google.rpc.Status

GeofenceService

Create stores geoblocking settings against specified content_reference

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

r = requests.post('https://mcls-api.mycujoo.tv/geofence/v1', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/geofence/v1", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/geofence/v1 HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "allow": {
    "country_codes": [
      "string"
    ]
  },
  "content_reference": {
    "id": "string",
    "type": "string"
  },
  "disallow": {
    "country_codes": [
      "string"
    ]
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/geofence/v1',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "allow": {
    "country_codes": [
      "string"
    ]
  },
  "content_reference": {
    "id": "string",
    "type": "string"
  },
  "disallow": {
    "country_codes": [
      "string"
    ]
  }
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/geofence/v1',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /geofence/v1

Body parameter

{
  "allow": {
    "country_codes": [
      "string"
    ]
  },
  "content_reference": {
    "id": "string",
    "type": "string"
  },
  "disallow": {
    "country_codes": [
      "string"
    ]
  }
}

Parameters

Name In Type Required Description
body body mycujoo.geofence.v1.CreateRequest true none

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.geofence.v1.CreateResponse
default Default An unexpected error response. google.rpc.Status

Get returns geoblocking settings for specified content_reference

Code samples

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('https://mcls-api.mycujoo.tv/geofence/v1/{content_reference.type}/{content_reference.id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/geofence/v1/{content_reference.type}/{content_reference.id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/geofence/v1/{content_reference.type}/{content_reference.id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/geofence/v1/{content_reference.type}/{content_reference.id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/geofence/v1/{content_reference.type}/{content_reference.id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /geofence/v1/{content_reference.type}/{content_reference.id}

Parameters

Name In Type Required Description
content_reference.type path string true Type of the content (stream or package)
content_reference.id path string true ID of the content

Example responses

200 Response

{
  "allow": {
    "country_codes": [
      "string"
    ]
  },
  "disallow": {
    "country_codes": [
      "string"
    ]
  }
}

Responses

Status Meaning Description Schema
200 OK Information about geoblocking for the subject mycujoo.geofence.v1.Geoblocking
default Default An unexpected error response. google.rpc.Status

Delete removes geoblocking settings from specified content_reference

Code samples

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.delete('https://mcls-api.mycujoo.tv/geofence/v1/{content_reference.type}/{content_reference.id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "https://mcls-api.mycujoo.tv/geofence/v1/{content_reference.type}/{content_reference.id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE https://mcls-api.mycujoo.tv/geofence/v1/{content_reference.type}/{content_reference.id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/geofence/v1/{content_reference.type}/{content_reference.id}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/geofence/v1/{content_reference.type}/{content_reference.id}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

DELETE /geofence/v1/{content_reference.type}/{content_reference.id}

Parameters

Name In Type Required Description
content_reference.type path string true Type of the content (stream or package)
content_reference.id path string true ID of the content

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.geofence.v1.DeleteResponse
default Default An unexpected error response. google.rpc.Status

Update updates geoblocking settings against specified content_reference

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

r = requests.patch('https://mcls-api.mycujoo.tv/geofence/v1/{content_reference.type}/{content_reference.id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "https://mcls-api.mycujoo.tv/geofence/v1/{content_reference.type}/{content_reference.id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PATCH https://mcls-api.mycujoo.tv/geofence/v1/{content_reference.type}/{content_reference.id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "allow": {
    "country_codes": [
      "string"
    ]
  },
  "disallow": {
    "country_codes": [
      "string"
    ]
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/geofence/v1/{content_reference.type}/{content_reference.id}',
{
  method: 'PATCH',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "allow": {
    "country_codes": [
      "string"
    ]
  },
  "disallow": {
    "country_codes": [
      "string"
    ]
  }
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/geofence/v1/{content_reference.type}/{content_reference.id}',
{
  method: 'PATCH',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PATCH /geofence/v1/{content_reference.type}/{content_reference.id}

Body parameter

{
  "allow": {
    "country_codes": [
      "string"
    ]
  },
  "disallow": {
    "country_codes": [
      "string"
    ]
  }
}

Parameters

Name In Type Required Description
content_reference.type path string true Type of the content (stream or package)
content_reference.id path string true ID of the content
body body mycujoo.geofence.v1.Geoblocking true Information about geoblocking for the subject

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.geofence.v1.UpdateResponse
default Default An unexpected error response. google.rpc.Status

IdentityService

IdentityService_ListIdentities

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/identity/v1/identities', params={
  'provider': 'PROVIDER_TYPE_UNSPECIFIED',  'tenant_id': 'string'
}, headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/identity/v1/identities", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/identity/v1/identities?provider=PROVIDER_TYPE_UNSPECIFIED&tenant_id=string HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/identity/v1/identities?provider=PROVIDER_TYPE_UNSPECIFIED&tenant_id=string',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/identity/v1/identities?provider=PROVIDER_TYPE_UNSPECIFIED&tenant_id=string',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /identity/v1/identities

Parameters

Name In Type Required Description
provider query string true Identity provider to use: auth0 or userfront
tenant_id query string true Provider's tenant id, e.g. Auth0's domain
filter query string false Filters by name or email using KQL-like syntax; e.g. name:foo or email:bar.
page_token query string false Page token

Detailed descriptions

filter: Filters by name or email using KQL-like syntax; e.g. name:foo or email:bar. Supported fields: name, email. Supported operator: ":" (equals). Wildcards are supported.

Enumerated Values

Parameter Value
provider PROVIDER_TYPE_UNSPECIFIED
provider PROVIDER_TYPE_AUTH0
provider PROVIDER_TYPE_USERFRONT

Example responses

200 Response

{
  "identities": [
    {
      "create_time": "2019-08-24T14:15:22Z",
      "email": "string",
      "id": "string",
      "name": "string",
      "provider": "PROVIDER_TYPE_UNSPECIFIED",
      "tenant_id": "string"
    }
  ],
  "next_page_token": "string"
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.identity.v1.ListIdentitiesResponse
default Default An unexpected error response. google.rpc.Status

GetIdentity retrieves identity information for a given identity_id from configured identity providers.

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/identity/v1/identities/{identity_id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/identity/v1/identities/{identity_id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/identity/v1/identities/{identity_id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/identity/v1/identities/{identity_id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/identity/v1/identities/{identity_id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /identity/v1/identities/{identity_id}

Parameters

Name In Type Required Description
identity_id path string true Third party identity (user) identifier

Example responses

200 Response

{
  "create_time": "2019-08-24T14:15:22Z",
  "email": "string",
  "id": "string",
  "name": "string",
  "provider": "PROVIDER_TYPE_UNSPECIFIED",
  "tenant_id": "string"
}

Responses

Status Meaning Description Schema
200 OK (empty) mycujoo.identity.v1.Identity
default Default An unexpected error response. google.rpc.Status

IdentityService_ListProviders

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/identity/v1/providers', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/identity/v1/providers", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/identity/v1/providers HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/identity/v1/providers',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/identity/v1/providers',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /identity/v1/providers

Example responses

200 Response

{
  "providers": [
    {
      "tenant_id": "string",
      "type": "PROVIDER_TYPE_UNSPECIFIED"
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.identity.v1.ListProvidersResponse
default Default An unexpected error response. google.rpc.Status

ListAuth0Integrations returns list of configurations for the Auth0 provider

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/identity/v1/providers/auth0', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/identity/v1/providers/auth0", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/identity/v1/providers/auth0 HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/identity/v1/providers/auth0',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/identity/v1/providers/auth0',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /identity/v1/providers/auth0

Example responses

200 Response

{
  "integrations": [
    {
      "domain": "string",
      "management_webhook_url": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.identity.v1.ListAuth0IntegrationsResponse
default Default An unexpected error response. google.rpc.Status

UpsertAuth0Integration inserts or updates Auth0 integration options for given domain

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.put('https://mcls-api.mycujoo.tv/identity/v1/providers/auth0/{domain}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "https://mcls-api.mycujoo.tv/identity/v1/providers/auth0/{domain}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT https://mcls-api.mycujoo.tv/identity/v1/providers/auth0/{domain} HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "credentials": {
    "client_id": "string",
    "client_secret": "string"
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/identity/v1/providers/auth0/{domain}',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "credentials": {
    "client_id": "string",
    "client_secret": "string"
  }
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/identity/v1/providers/auth0/{domain}',
{
  method: 'PUT',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PUT /identity/v1/providers/auth0/{domain}

Body parameter

{
  "credentials": {
    "client_id": "string",
    "client_secret": "string"
  }
}

Parameters

Name In Type Required Description
domain path string true ID corresponding to organization on identity provider service, it should be those included to JWT
body body object true none
ยป credentials body mycujoo.identity.v1.Auth0APICredentials false none
ยปยป client_id body string false Client ID of the application that will be used to access users API, could be found in application settings.
ยปยป client_secret body string false Client secret users API accessing application, could be found in application settings under "Credentials" tab.

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.identity.v1.UpsertAuth0IntegrationResponse
default Default An unexpected error response. google.rpc.Status

ListUserfrontIntegrations returns list of configurations for the Userfront provider

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/identity/v1/providers/userfront', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/identity/v1/providers/userfront", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/identity/v1/providers/userfront HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/identity/v1/providers/userfront',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/identity/v1/providers/userfront',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /identity/v1/providers/userfront

Example responses

200 Response

{
  "integrations": [
    {
      "admin_role_id": "string",
      "public_key": "string",
      "tenant_id": "string",
      "tester_role_id": "string",
      "user_delete_webhook_url": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.identity.v1.ListUserfrontIntegrationsResponse
default Default An unexpected error response. google.rpc.Status

UpsertUserfrontIntegration inserts or updates UserFront integration options for given tenant_id

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.put('https://mcls-api.mycujoo.tv/identity/v1/providers/userfront/{tenant_id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "https://mcls-api.mycujoo.tv/identity/v1/providers/userfront/{tenant_id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT https://mcls-api.mycujoo.tv/identity/v1/providers/userfront/{tenant_id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "admin_role_id": "string",
  "api_key": "string",
  "public_key": "string",
  "tester_role_id": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/identity/v1/providers/userfront/{tenant_id}',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "admin_role_id": "string",
  "api_key": "string",
  "public_key": "string",
  "tester_role_id": "string"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/identity/v1/providers/userfront/{tenant_id}',
{
  method: 'PUT',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PUT /identity/v1/providers/userfront/{tenant_id}

Body parameter

{
  "admin_role_id": "string",
  "api_key": "string",
  "public_key": "string",
  "tester_role_id": "string"
}

Parameters

Name In Type Required Description
tenant_id path string true ID corresponding to organization on identity provider service, it should be those included to JWT
body body object true none
ยป admin_role_id body string true none
ยป api_key body string false none
ยป public_key body string true none
ยป tester_role_id body string true none

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.identity.v1.UpsertUserfrontIntegrationResponse
default Default An unexpected error response. google.rpc.Status

CreateIdentityToken is used to generate identity token that can be shared through untrusted environments

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.post('https://mcls-api.mycujoo.tv/identity/v1/tokens', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/identity/v1/tokens", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/identity/v1/tokens HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "identity_id": "string",
  "is_admin": true,
  "is_test_identity": true
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/identity/v1/tokens',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "identity_id": "string",
  "is_admin": true,
  "is_test_identity": true
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/identity/v1/tokens',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /identity/v1/tokens

Body parameter

{
  "identity_id": "string",
  "is_admin": true,
  "is_test_identity": true
}

Parameters

Name In Type Required Description
body body mycujoo.identity.v1.CreateIdentityTokenRequest true none

Example responses

200 Response

{
  "token": "string"
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.identity.v1.CreateIdentityTokenResponse
default Default An unexpected error response. google.rpc.Status

IntegrationsService

List

Returns list of integrations

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/integrations/v1beta1', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/integrations/v1beta1", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/integrations/v1beta1 HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/integrations/v1beta1',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/integrations/v1beta1',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /integrations/v1beta1

Returns list of integrations

Parameters

Name In Type Required Description
order_by query string false Specifies the result ordering
page_size query integer(int32) false Maximum number of records to return
page_token query string false The pagination token used for cursor pagination

Detailed descriptions

order_by: Specifies the result ordering

Enumerated Values

Parameter Value
order_by ORDER_UNSPECIFIED
order_by ORDER_CREATE_TIME_ASC
order_by ORDER_CREATE_TIME_DESC

Example responses

200 Response

{
  "integrations": [
    {
      "create_time": "2019-08-24T14:15:22Z",
      "id": "string",
      "source": "SOURCE_UNSPECIFIED",
      "target": {
        "google_cloud_pub_sub": {
          "project_id": "string",
          "service_account_json": "string",
          "topic_id": "string"
        },
        "webhook": {
          "headers": {
            "authorization": "Basic YWxhZGRpbjpvcGVuc2VzYW1l"
          },
          "params": {
            "src": "mcls"
          },
          "url": "https://domain.com/events"
        }
      }
    }
  ],
  "next_page_token": "string"
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.integrations.v1beta1.ListResponse
default Default An unexpected error response. google.rpc.Status

Create

Creates integration

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.post('https://mcls-api.mycujoo.tv/integrations/v1beta1', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/integrations/v1beta1", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/integrations/v1beta1 HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "source": "SOURCE_UNSPECIFIED",
  "target": {
    "google_cloud_pub_sub": {
      "project_id": "string",
      "service_account_json": "string",
      "topic_id": "string"
    },
    "webhook": {
      "headers": {
        "authorization": "Basic YWxhZGRpbjpvcGVuc2VzYW1l"
      },
      "params": {
        "src": "mcls"
      },
      "url": "https://domain.com/events"
    }
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/integrations/v1beta1',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "source": "SOURCE_UNSPECIFIED",
  "target": {
    "google_cloud_pub_sub": {
      "project_id": "string",
      "service_account_json": "string",
      "topic_id": "string"
    },
    "webhook": {
      "headers": {
        "authorization": "Basic YWxhZGRpbjpvcGVuc2VzYW1l"
      },
      "params": {
        "src": "mcls"
      },
      "url": "https://domain.com/events"
    }
  }
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/integrations/v1beta1',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /integrations/v1beta1

Creates integration

Body parameter

{
  "source": "SOURCE_UNSPECIFIED",
  "target": {
    "google_cloud_pub_sub": {
      "project_id": "string",
      "service_account_json": "string",
      "topic_id": "string"
    },
    "webhook": {
      "headers": {
        "authorization": "Basic YWxhZGRpbjpvcGVuc2VzYW1l"
      },
      "params": {
        "src": "mcls"
      },
      "url": "https://domain.com/events"
    }
  }
}

Parameters

Name In Type Required Description
body body mycujoo.integrations.v1beta1.CreateRequest true none

Example responses

200 Response

{
  "create_time": "2019-08-24T14:15:22Z",
  "id": "string",
  "source": "SOURCE_UNSPECIFIED",
  "target": {
    "google_cloud_pub_sub": {
      "project_id": "string",
      "service_account_json": "string",
      "topic_id": "string"
    },
    "webhook": {
      "headers": {
        "authorization": "Basic YWxhZGRpbjpvcGVuc2VzYW1l"
      },
      "params": {
        "src": "mcls"
      },
      "url": "https://domain.com/events"
    }
  }
}

Responses

Status Meaning Description Schema
200 OK (empty) mycujoo.integrations.v1beta1.Integration
default Default An unexpected error response. google.rpc.Status

Get

Returns integration with given id

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/integrations/v1beta1/{integration_id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/integrations/v1beta1/{integration_id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/integrations/v1beta1/{integration_id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/integrations/v1beta1/{integration_id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/integrations/v1beta1/{integration_id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /integrations/v1beta1/{integration_id}

Returns integration with given id

Parameters

Name In Type Required Description
integration_id path string true ID of the integration

Example responses

200 Response

{
  "create_time": "2019-08-24T14:15:22Z",
  "id": "string",
  "source": "SOURCE_UNSPECIFIED",
  "target": {
    "google_cloud_pub_sub": {
      "project_id": "string",
      "service_account_json": "string",
      "topic_id": "string"
    },
    "webhook": {
      "headers": {
        "authorization": "Basic YWxhZGRpbjpvcGVuc2VzYW1l"
      },
      "params": {
        "src": "mcls"
      },
      "url": "https://domain.com/events"
    }
  }
}

Responses

Status Meaning Description Schema
200 OK (empty) mycujoo.integrations.v1beta1.Integration
default Default An unexpected error response. google.rpc.Status

Delete

Removes integration with given id

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.delete('https://mcls-api.mycujoo.tv/integrations/v1beta1/{integration_id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "https://mcls-api.mycujoo.tv/integrations/v1beta1/{integration_id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE https://mcls-api.mycujoo.tv/integrations/v1beta1/{integration_id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/integrations/v1beta1/{integration_id}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/integrations/v1beta1/{integration_id}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

DELETE /integrations/v1beta1/{integration_id}

Removes integration with given id

Parameters

Name In Type Required Description
integration_id path string true ID of the integration

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.integrations.v1beta1.DeleteResponse
default Default An unexpected error response. google.rpc.Status

Update

Updates integration with given id

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.patch('https://mcls-api.mycujoo.tv/integrations/v1beta1/{integration_id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "https://mcls-api.mycujoo.tv/integrations/v1beta1/{integration_id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PATCH https://mcls-api.mycujoo.tv/integrations/v1beta1/{integration_id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "source": "SOURCE_UNSPECIFIED",
  "target": {
    "google_cloud_pub_sub": {
      "project_id": "string",
      "service_account_json": "string",
      "topic_id": "string"
    },
    "webhook": {
      "headers": {
        "authorization": "Basic YWxhZGRpbjpvcGVuc2VzYW1l"
      },
      "params": {
        "src": "mcls"
      },
      "url": "https://domain.com/events"
    }
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/integrations/v1beta1/{integration_id}',
{
  method: 'PATCH',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "source": "SOURCE_UNSPECIFIED",
  "target": {
    "google_cloud_pub_sub": {
      "project_id": "string",
      "service_account_json": "string",
      "topic_id": "string"
    },
    "webhook": {
      "headers": {
        "authorization": "Basic YWxhZGRpbjpvcGVuc2VzYW1l"
      },
      "params": {
        "src": "mcls"
      },
      "url": "https://domain.com/events"
    }
  }
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/integrations/v1beta1/{integration_id}',
{
  method: 'PATCH',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PATCH /integrations/v1beta1/{integration_id}

Updates integration with given id

Body parameter

{
  "source": "SOURCE_UNSPECIFIED",
  "target": {
    "google_cloud_pub_sub": {
      "project_id": "string",
      "service_account_json": "string",
      "topic_id": "string"
    },
    "webhook": {
      "headers": {
        "authorization": "Basic YWxhZGRpbjpvcGVuc2VzYW1l"
      },
      "params": {
        "src": "mcls"
      },
      "url": "https://domain.com/events"
    }
  }
}

Parameters

Name In Type Required Description
integration_id path string true ID of the integration
body body mycujoo.integrations.v1beta1.UpdateRequest.UpdateFields true Fields to update

Example responses

200 Response

{
  "create_time": "2019-08-24T14:15:22Z",
  "id": "string",
  "source": "SOURCE_UNSPECIFIED",
  "target": {
    "google_cloud_pub_sub": {
      "project_id": "string",
      "service_account_json": "string",
      "topic_id": "string"
    },
    "webhook": {
      "headers": {
        "authorization": "Basic YWxhZGRpbjpvcGVuc2VzYW1l"
      },
      "params": {
        "src": "mcls"
      },
      "url": "https://domain.com/events"
    }
  }
}

Responses

Status Meaning Description Schema
200 OK (empty) mycujoo.integrations.v1beta1.Integration
default Default An unexpected error response. google.rpc.Status

MetadataService

New Data

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

r = requests.post('https://mcls-api.mycujoo.tv/metadata/v1/data', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/metadata/v1/data", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/metadata/v1/data HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "data": {
    "competitionName": {
      "string": "Champions League"
    },
    "team": {
      "name": "Legia Warsaw",
      "players": [
        "Marek Saganowski"
      ]
    },
    "title": "Final 2020"
  },
  "schema_id": "1do8zuDeZKfh2YSgzd2ek69jhOY"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/metadata/v1/data',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "data": {
    "competitionName": {
      "string": "Champions League"
    },
    "team": {
      "name": "Legia Warsaw",
      "players": [
        "Marek Saganowski"
      ]
    },
    "title": "Final 2020"
  },
  "schema_id": "1do8zuDeZKfh2YSgzd2ek69jhOY"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/metadata/v1/data',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /metadata/v1/data

This method allows you to store data in the system after is successfully validated against provided schema id

Body parameter

{
  "data": {
    "competitionName": {
      "string": "Champions League"
    },
    "team": {
      "name": "Legia Warsaw",
      "players": [
        "Marek Saganowski"
      ]
    },
    "title": "Final 2020"
  },
  "schema_id": "1do8zuDeZKfh2YSgzd2ek69jhOY"
}

Parameters

Name In Type Required Description
body body mycujoo.metadata.v1.CreateDataRequest true none

Example responses

200 Response

{
  "data": {
    "competitionName": {
      "string": "Champions League"
    },
    "team": {
      "name": "Legia Warsaw",
      "players": [
        "Marek Saganowski"
      ]
    },
    "title": "Final 2020"
  },
  "id": "ck9be30x30lnk1cmsengq2tq2"
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.metadata.v1.CreateDataResponse
default Default An unexpected error response. google.rpc.Status

Get Data

Code samples

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('https://mcls-api.mycujoo.tv/metadata/v1/data/{id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/metadata/v1/data/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/metadata/v1/data/{id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/metadata/v1/data/{id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/metadata/v1/data/{id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /metadata/v1/data/{id}

Returns data that matches specified id

Parameters

Name In Type Required Description
id path string true ID of the data

Example responses

200 Response

{
  "data": {
    "competitionName": {
      "string": "Champions League"
    },
    "team": {
      "name": "Legia Warsaw",
      "players": [
        "Marek Saganowski"
      ]
    },
    "title": "Final 2020"
  },
  "schema_id": "1do8zuDeZKfh2YSgzd2ek69jhOY"
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.metadata.v1.GetDataResponse
default Default An unexpected error response. google.rpc.Status

Delete Data

Code samples

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.delete('https://mcls-api.mycujoo.tv/metadata/v1/data/{id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "https://mcls-api.mycujoo.tv/metadata/v1/data/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE https://mcls-api.mycujoo.tv/metadata/v1/data/{id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/metadata/v1/data/{id}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/metadata/v1/data/{id}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

DELETE /metadata/v1/data/{id}

Removes data that matches specified id

Parameters

Name In Type Required Description
id path string true ID of data to delete

Example responses

200 Response

{
  "id": "ck9be30x30lnk1cmsengq2tq2"
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.metadata.v1.DeleteDataResponse
default Default An unexpected error response. google.rpc.Status

Update Data

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

r = requests.patch('https://mcls-api.mycujoo.tv/metadata/v1/data/{id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "https://mcls-api.mycujoo.tv/metadata/v1/data/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PATCH https://mcls-api.mycujoo.tv/metadata/v1/data/{id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "data": {},
  "schema_id": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/metadata/v1/data/{id}',
{
  method: 'PATCH',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "data": {},
  "schema_id": "string"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/metadata/v1/data/{id}',
{
  method: 'PATCH',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PATCH /metadata/v1/data/{id}

Updates data that is stored in the system by specified id

Body parameter

{
  "data": {},
  "schema_id": "string"
}

Parameters

Name In Type Required Description
id path string true ID of the data
body body mycujoo.metadata.v1.UpdateDataRequest.UpdateFields true none

Example responses

200 Response

{
  "data": {
    "competitionName": {
      "string": "Champions League"
    },
    "team": {
      "name": "Legia Warsaw",
      "players": [
        "Marek Saganowski"
      ]
    },
    "title": "Final 2020"
  }
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.metadata.v1.UpdateDataResponse
default Default An unexpected error response. google.rpc.Status

List Schemas

Code samples

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('https://mcls-api.mycujoo.tv/metadata/v1/schemas', params={
  'order_by': 'ORDER_UNSPECIFIED'
}, headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/metadata/v1/schemas", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/metadata/v1/schemas?order_by=ORDER_UNSPECIFIED HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/metadata/v1/schemas?order_by=ORDER_UNSPECIFIED',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/metadata/v1/schemas?order_by=ORDER_UNSPECIFIED',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /metadata/v1/schemas

Lists all the schemas that are owned by specific organization.

Parameters

Name In Type Required Description
order_by query string true Specifies the result ordering for List requests
page_size query integer(int32) false Maximum number of records to return. Defaults to 100
page_token query string false The pagination token in the List request.
visibilities query array[string] false none
resource_types query array[string] false none

Detailed descriptions

order_by: Specifies the result ordering for List requests

Enumerated Values

Parameter Value
order_by ORDER_UNSPECIFIED
order_by ORDER_CREATED_AT_ASC
order_by ORDER_CREATED_AT_DESC
order_by ORDER_ALPHABETICAL_ASC
order_by ORDER_ALPHABETICAL_DESC
visibilities SCHEMA_VISIBILITY_UNSPECIFIED
visibilities SCHEMA_VISIBILITY_PUBLISHED
visibilities SCHEMA_VISIBILITY_UNLISTED
visibilities SCHEMA_VISIBILITY_HIDDEN
resource_types SCHEMA_RESOURCE_TYPE_UNSPECIFIED
resource_types SCHEMA_RESOURCE_TYPE_EVENT_TYPE
resource_types SCHEMA_RESOURCE_TYPE_ACTION

Example responses

200 Response

{
  "schemas": [
    {
      "id": "1do8zuDeZKfh2YSgzd2ek69jhOY",
      "title": "test schema"
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.metadata.v1.ListSchemasResponse
default Default An unexpected error response. google.rpc.Status

New Schema

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

r = requests.post('https://mcls-api.mycujoo.tv/metadata/v1/schemas', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/metadata/v1/schemas", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/metadata/v1/schemas HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "custom_editor_url": "string",
  "fields": [
    {}
  ],
  "indexable_paths": [
    "string"
  ],
  "resource_type": "SCHEMA_RESOURCE_TYPE_UNSPECIFIED",
  "searchable_paths": [
    "string"
  ],
  "title": "string",
  "visibility": "SCHEMA_VISIBILITY_UNSPECIFIED"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/metadata/v1/schemas',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "custom_editor_url": "string",
  "fields": [
    {}
  ],
  "indexable_paths": [
    "string"
  ],
  "resource_type": "SCHEMA_RESOURCE_TYPE_UNSPECIFIED",
  "searchable_paths": [
    "string"
  ],
  "title": "string",
  "visibility": "SCHEMA_VISIBILITY_UNSPECIFIED"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/metadata/v1/schemas',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /metadata/v1/schemas

This method allows you to store schema in the system. This schema needs to contain title and valid AVRO fields.

Body parameter

{
  "custom_editor_url": "string",
  "fields": [
    {}
  ],
  "indexable_paths": [
    "string"
  ],
  "resource_type": "SCHEMA_RESOURCE_TYPE_UNSPECIFIED",
  "searchable_paths": [
    "string"
  ],
  "title": "string",
  "visibility": "SCHEMA_VISIBILITY_UNSPECIFIED"
}

Parameters

Name In Type Required Description
body body mycujoo.metadata.v1.Schema true none

Example responses

200 Response

{
  "id": "ck9be30x30lnk1cmsengq2tq2"
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.metadata.v1.CreateSchemaResponse
default Default An unexpected error response. google.rpc.Status

Get Schema

Code samples

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('https://mcls-api.mycujoo.tv/metadata/v1/schemas/{id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/metadata/v1/schemas/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/metadata/v1/schemas/{id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/metadata/v1/schemas/{id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/metadata/v1/schemas/{id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /metadata/v1/schemas/{id}

Returns schema that matches specified id

Parameters

Name In Type Required Description
id path string true ID of the schema

Example responses

200 Response

{
  "schema": {
    "fields": [
      {
        "name": "title",
        "type": "string"
      },
      {
        "name": "competitionName",
        "type": [
          "null",
          "string"
        ]
      },
      {
        "name": "team",
        "type": {
          "fields": [
            {
              "name": "name",
              "type": "string"
            },
            {
              "name": "players",
              "type": {
                "default": [],
                "items": "string",
                "type": "array"
              }
            }
          ],
          "name": "recordTeam",
          "type": "record"
        }
      }
    ],
    "id": "1do8zuDeZKfh2YSgzd2ek69jhOY",
    "title": "test schema"
  }
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.metadata.v1.GetSchemaResponse
default Default An unexpected error response. google.rpc.Status

Delete Schema

Code samples

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.delete('https://mcls-api.mycujoo.tv/metadata/v1/schemas/{id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "https://mcls-api.mycujoo.tv/metadata/v1/schemas/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE https://mcls-api.mycujoo.tv/metadata/v1/schemas/{id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/metadata/v1/schemas/{id}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/metadata/v1/schemas/{id}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

DELETE /metadata/v1/schemas/{id}

Removes schema that matches specified id

Parameters

Name In Type Required Description
id path string true ID of the schema to delete

Example responses

200 Response

{
  "id": "ck9be30x30lnk1cmsengq2tq2"
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.metadata.v1.DeleteSchemaResponse
default Default An unexpected error response. google.rpc.Status

Update Schema

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

r = requests.patch('https://mcls-api.mycujoo.tv/metadata/v1/schemas/{schema.id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "https://mcls-api.mycujoo.tv/metadata/v1/schemas/{schema.id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PATCH https://mcls-api.mycujoo.tv/metadata/v1/schemas/{schema.id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "custom_editor_url": "string",
  "fields": [
    {}
  ],
  "indexable_paths": [
    "string"
  ],
  "resource_type": "SCHEMA_RESOURCE_TYPE_UNSPECIFIED",
  "searchable_paths": [
    "string"
  ],
  "title": "string",
  "visibility": "SCHEMA_VISIBILITY_UNSPECIFIED"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/metadata/v1/schemas/{schema.id}',
{
  method: 'PATCH',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "custom_editor_url": "string",
  "fields": [
    {}
  ],
  "indexable_paths": [
    "string"
  ],
  "resource_type": "SCHEMA_RESOURCE_TYPE_UNSPECIFIED",
  "searchable_paths": [
    "string"
  ],
  "title": "string",
  "visibility": "SCHEMA_VISIBILITY_UNSPECIFIED"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/metadata/v1/schemas/{schema.id}',
{
  method: 'PATCH',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PATCH /metadata/v1/schemas/{schema.id}

Updates schema that matches specified id

Body parameter

{
  "custom_editor_url": "string",
  "fields": [
    {}
  ],
  "indexable_paths": [
    "string"
  ],
  "resource_type": "SCHEMA_RESOURCE_TYPE_UNSPECIFIED",
  "searchable_paths": [
    "string"
  ],
  "title": "string",
  "visibility": "SCHEMA_VISIBILITY_UNSPECIFIED"
}

Parameters

Name In Type Required Description
schema.id path string true ID of the schema
body body object true Schema fields which need to be updated
ยป custom_editor_url body string false none
ยป fields body [object] false none
ยป indexable_paths body [string] false none
ยป resource_type body mycujoo.metadata.v1.SchemaResourceType false none
ยป searchable_paths body [string] false none
ยป title body string false none
ยป visibility body mycujoo.metadata.v1.SchemaVisibility false none

Enumerated Values

Parameter Value
ยป resource_type SCHEMA_RESOURCE_TYPE_UNSPECIFIED
ยป resource_type SCHEMA_RESOURCE_TYPE_EVENT_TYPE
ยป resource_type SCHEMA_RESOURCE_TYPE_ACTION
ยป visibility SCHEMA_VISIBILITY_UNSPECIFIED
ยป visibility SCHEMA_VISIBILITY_PUBLISHED
ยป visibility SCHEMA_VISIBILITY_UNLISTED
ยป visibility SCHEMA_VISIBILITY_HIDDEN

Example responses

200 Response

{
  "custom_editor_url": "string",
  "fields": [
    {}
  ],
  "id": "string",
  "indexable_paths": [
    "string"
  ],
  "resource_type": "SCHEMA_RESOURCE_TYPE_UNSPECIFIED",
  "searchable_paths": [
    "string"
  ],
  "title": "string",
  "visibility": "SCHEMA_VISIBILITY_UNSPECIFIED"
}

Responses

Status Meaning Description Schema
200 OK Updated schema mycujoo.metadata.v1.Schema
default Default An unexpected error response. google.rpc.Status

GetSchemaIamPolicy

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/metadata/v1/schemas/{schema_id}/iam_policy', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/metadata/v1/schemas/{schema_id}/iam_policy", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/metadata/v1/schemas/{schema_id}/iam_policy HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/metadata/v1/schemas/{schema_id}/iam_policy',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/metadata/v1/schemas/{schema_id}/iam_policy',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /metadata/v1/schemas/{schema_id}/iam_policy

Returns current IAM policy for the schema. Use returned policy and etag to update policy.

Parameters

Name In Type Required Description
schema_id path string true none

Example responses

200 Response

{
  "etag": "string",
  "policy": {
    "bindings": [
      {
        "account_ids": [
          "2GzbST9DaEPsNcDTaW30GWnfZyw",
          "2GzbTHf7FfMyGv2F71FWwGRzKWb"
        ],
        "role_id": "owner"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "projects.admin"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "accounts.admin"
      }
    ]
  },
  "resource_hierarchy": [
    {
      "id": "elevendata",
      "type": "project"
    }
  ],
  "resource_title": "string"
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.metadata.v1.GetSchemaIamPolicyResponse
default Default An unexpected error response. google.rpc.Status

SetSchemaIamPolicy

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.post('https://mcls-api.mycujoo.tv/metadata/v1/schemas/{schema_id}/iam_policy', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/metadata/v1/schemas/{schema_id}/iam_policy", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/metadata/v1/schemas/{schema_id}/iam_policy HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "etag": "string",
  "policy": {
    "bindings": [
      {
        "account_ids": [
          "2GzbST9DaEPsNcDTaW30GWnfZyw",
          "2GzbTHf7FfMyGv2F71FWwGRzKWb"
        ],
        "role_id": "owner"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "projects.admin"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "accounts.admin"
      }
    ]
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/metadata/v1/schemas/{schema_id}/iam_policy',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "etag": "string",
  "policy": {
    "bindings": [
      {
        "account_ids": [
          "2GzbST9DaEPsNcDTaW30GWnfZyw",
          "2GzbTHf7FfMyGv2F71FWwGRzKWb"
        ],
        "role_id": "owner"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "projects.admin"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "accounts.admin"
      }
    ]
  }
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/metadata/v1/schemas/{schema_id}/iam_policy',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /metadata/v1/schemas/{schema_id}/iam_policy

Set IAM policy for the schema. This method replaces all existing policy bindings for the schema. To prevent overwriting existing policy bindings that were written concurrently, use the etag field to perform a read-modify-write operation.

Body parameter

{
  "etag": "string",
  "policy": {
    "bindings": [
      {
        "account_ids": [
          "2GzbST9DaEPsNcDTaW30GWnfZyw",
          "2GzbTHf7FfMyGv2F71FWwGRzKWb"
        ],
        "role_id": "owner"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "projects.admin"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "accounts.admin"
      }
    ]
  }
}

Parameters

Name In Type Required Description
schema_id path string true none
body body object true none
ยป etag body string(byte) false none
ยป policy body mycujoo.auth.v1.Policy true Authorization policy.
ยปยป bindings body [mycujoo.auth.v1.Binding] false List of bindings to the policy. If empty, the policy will not have any effect.
ยปยปยป account_ids body [string] false List of account identifiers (referencing mycujoo.accounts.v1.Account) that have the role.
ยปยปยป include_all_organization_accounts body boolean false If this is set to true then the role is granted to all accounts in the organization. It overrides the account_ids field.
ยปยปยป role_id body string false none

Detailed descriptions

ยปยป bindings: List of bindings to the policy. If empty, the policy will not have any effect. Total number of accounts referenced in the bindings should be up to 1500. If same account has multiple roles - it is counted multiple times.

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.metadata.v1.SetSchemaIamPolicyResponse
default Default An unexpected error response. google.rpc.Status

TestIamPermissions

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.post('https://mcls-api.mycujoo.tv/metadata/v1/test_iam_permissions', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/metadata/v1/test_iam_permissions", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/metadata/v1/test_iam_permissions HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "permissions": [
    "projects.create",
    "projects.update",
    "projects.delete"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/metadata/v1/test_iam_permissions',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "permissions": [
    "projects.create",
    "projects.update",
    "projects.delete"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/metadata/v1/test_iam_permissions',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /metadata/v1/test_iam_permissions

This method validates the current account given a list of permissions. Used for UI

Body parameter

{
  "permissions": [
    "projects.create",
    "projects.update",
    "projects.delete"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
}

Parameters

Name In Type Required Description
body body mycujoo.metadata.v1.TestIamPermissionsRequest true none

Example responses

200 Response

{
  "permissions": [
    "projects.create",
    "projects.update"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.metadata.v1.TestIamPermissionsResponse
default Default An unexpected error response. google.rpc.Status

Adds data to the system

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

r = requests.post('https://mcls-api.mycujoo.tv/metadata/v1beta1/data', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/metadata/v1beta1/data", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/metadata/v1beta1/data HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "data": {
    "competitionName": {
      "string": "Champions League"
    },
    "team": {
      "name": "Legia Warsaw",
      "players": [
        "Marek Saganowski"
      ]
    },
    "title": "Final 2020"
  },
  "schema_id": "1do8zuDeZKfh2YSgzd2ek69jhOY"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/metadata/v1beta1/data',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "data": {
    "competitionName": {
      "string": "Champions League"
    },
    "team": {
      "name": "Legia Warsaw",
      "players": [
        "Marek Saganowski"
      ]
    },
    "title": "Final 2020"
  },
  "schema_id": "1do8zuDeZKfh2YSgzd2ek69jhOY"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/metadata/v1beta1/data',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /metadata/v1beta1/data

This method allows you to store data in the system after is successfully validated against provided schema id

Body parameter

{
  "data": {
    "competitionName": {
      "string": "Champions League"
    },
    "team": {
      "name": "Legia Warsaw",
      "players": [
        "Marek Saganowski"
      ]
    },
    "title": "Final 2020"
  },
  "schema_id": "1do8zuDeZKfh2YSgzd2ek69jhOY"
}

Parameters

Name In Type Required Description
body body mycujoo.metadata.v1beta1.CreateDataRequest true none

Example responses

200 Response

{
  "data": {
    "competitionName": {
      "string": "Champions League"
    },
    "team": {
      "name": "Legia Warsaw",
      "players": [
        "Marek Saganowski"
      ]
    },
    "title": "Final 2020"
  },
  "id": "ck9be30x30lnk1cmsengq2tq2"
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.metadata.v1beta1.CreateDataResponse
default Default An unexpected error response. google.rpc.Status

Gets data from the system by specified id

Code samples

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('https://mcls-api.mycujoo.tv/metadata/v1beta1/data/{id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/metadata/v1beta1/data/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/metadata/v1beta1/data/{id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/metadata/v1beta1/data/{id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/metadata/v1beta1/data/{id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /metadata/v1beta1/data/{id}

Returns data that matches specified id

Parameters

Name In Type Required Description
id path string true ID of the data

Example responses

200 Response

{
  "data": {
    "competitionName": {
      "string": "Champions League"
    },
    "team": {
      "name": "Legia Warsaw",
      "players": [
        "Marek Saganowski"
      ]
    },
    "title": "Final 2020"
  },
  "schema_id": "1do8zuDeZKfh2YSgzd2ek69jhOY"
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.metadata.v1beta1.GetDataResponse
default Default An unexpected error response. google.rpc.Status

Removes data from the system

Code samples

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.delete('https://mcls-api.mycujoo.tv/metadata/v1beta1/data/{id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "https://mcls-api.mycujoo.tv/metadata/v1beta1/data/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE https://mcls-api.mycujoo.tv/metadata/v1beta1/data/{id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/metadata/v1beta1/data/{id}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/metadata/v1beta1/data/{id}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

DELETE /metadata/v1beta1/data/{id}

Removes data that matches specified id

Parameters

Name In Type Required Description
id path string true ID of data to delete

Example responses

200 Response

{
  "id": "ck9be30x30lnk1cmsengq2tq2"
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.metadata.v1beta1.DeleteDataResponse
default Default An unexpected error response. google.rpc.Status

Updates data in the system

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

r = requests.patch('https://mcls-api.mycujoo.tv/metadata/v1beta1/data/{id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "https://mcls-api.mycujoo.tv/metadata/v1beta1/data/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PATCH https://mcls-api.mycujoo.tv/metadata/v1beta1/data/{id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "data": {},
  "schema_id": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/metadata/v1beta1/data/{id}',
{
  method: 'PATCH',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "data": {},
  "schema_id": "string"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/metadata/v1beta1/data/{id}',
{
  method: 'PATCH',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PATCH /metadata/v1beta1/data/{id}

Updates data that is stored in the system by specified id

Body parameter

{
  "data": {},
  "schema_id": "string"
}

Parameters

Name In Type Required Description
id path string true ID of the data
body body mycujoo.metadata.v1beta1.UpdateDataRequest.UpdateFields true none

Example responses

200 Response

{
  "data": {
    "competitionName": {
      "string": "Champions League"
    },
    "team": {
      "name": "Legia Warsaw",
      "players": [
        "Marek Saganowski"
      ]
    },
    "title": "Final 2020"
  }
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.metadata.v1beta1.UpdateDataResponse
default Default An unexpected error response. google.rpc.Status

Gets all the schemas for a specific organization

Code samples

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('https://mcls-api.mycujoo.tv/metadata/v1beta1/schemas', params={
  'order_by': 'ORDER_UNSPECIFIED'
}, headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/metadata/v1beta1/schemas", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/metadata/v1beta1/schemas?order_by=ORDER_UNSPECIFIED HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/metadata/v1beta1/schemas?order_by=ORDER_UNSPECIFIED',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/metadata/v1beta1/schemas?order_by=ORDER_UNSPECIFIED',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /metadata/v1beta1/schemas

Lists all the schemas that are owned by specific organization.

Parameters

Name In Type Required Description
order_by query string true Specifies the result ordering for List requests
page_size query integer(int32) false Maximum number of records to return. Defaults to 100
page_token query string false The pagination token in the List request.
category query string false Category to filter by

Detailed descriptions

order_by: Specifies the result ordering for List requests

Enumerated Values

Parameter Value
order_by ORDER_UNSPECIFIED
order_by ORDER_CREATED_AT_ASC
order_by ORDER_CREATED_AT_DESC
order_by ORDER_ALPHABETICAL_ASC
order_by ORDER_ALPHABETICAL_DESC

Example responses

200 Response

{
  "schemas": [
    {
      "id": "1do8zuDeZKfh2YSgzd2ek69jhOY",
      "title": "test schema"
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.metadata.v1beta1.ListSchemasResponse
default Default An unexpected error response. google.rpc.Status

Adds schema to the system

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

r = requests.post('https://mcls-api.mycujoo.tv/metadata/v1beta1/schemas', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/metadata/v1beta1/schemas", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/metadata/v1beta1/schemas HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "fields": [
    {
      "name": "title",
      "type": "string"
    },
    {
      "name": "competitionName",
      "type": [
        "null",
        "string"
      ]
    },
    {
      "name": "team",
      "type": {
        "fields": [
          {
            "name": "name",
            "type": "string"
          },
          {
            "name": "players",
            "type": {
              "default": [],
              "items": "string",
              "type": "array"
            }
          }
        ],
        "name": "recordTeam",
        "type": "record"
      }
    }
  ],
  "title": "test schema"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/metadata/v1beta1/schemas',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "fields": [
    {
      "name": "title",
      "type": "string"
    },
    {
      "name": "competitionName",
      "type": [
        "null",
        "string"
      ]
    },
    {
      "name": "team",
      "type": {
        "fields": [
          {
            "name": "name",
            "type": "string"
          },
          {
            "name": "players",
            "type": {
              "default": [],
              "items": "string",
              "type": "array"
            }
          }
        ],
        "name": "recordTeam",
        "type": "record"
      }
    }
  ],
  "title": "test schema"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/metadata/v1beta1/schemas',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /metadata/v1beta1/schemas

This method allows you to store schema in the system. This schema needs to contain title and valid AVRO fields.

Body parameter

{
  "fields": [
    {
      "name": "title",
      "type": "string"
    },
    {
      "name": "competitionName",
      "type": [
        "null",
        "string"
      ]
    },
    {
      "name": "team",
      "type": {
        "fields": [
          {
            "name": "name",
            "type": "string"
          },
          {
            "name": "players",
            "type": {
              "default": [],
              "items": "string",
              "type": "array"
            }
          }
        ],
        "name": "recordTeam",
        "type": "record"
      }
    }
  ],
  "title": "test schema"
}

Parameters

Name In Type Required Description
body body mycujoo.metadata.v1beta1.CreateSchemaRequest true none

Example responses

200 Response

{
  "id": "ck9be30x30lnk1cmsengq2tq2"
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.metadata.v1beta1.CreateSchemaResponse
default Default An unexpected error response. google.rpc.Status

Gets schema from the system by specified id

Code samples

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('https://mcls-api.mycujoo.tv/metadata/v1beta1/schemas/{id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/metadata/v1beta1/schemas/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/metadata/v1beta1/schemas/{id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/metadata/v1beta1/schemas/{id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/metadata/v1beta1/schemas/{id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /metadata/v1beta1/schemas/{id}

Returns schema that matches specified id

Parameters

Name In Type Required Description
id path string true ID of the schema

Example responses

200 Response

{
  "schema": {
    "fields": [
      {
        "name": "title",
        "type": "string"
      },
      {
        "name": "competitionName",
        "type": [
          "null",
          "string"
        ]
      },
      {
        "name": "team",
        "type": {
          "fields": [
            {
              "name": "name",
              "type": "string"
            },
            {
              "name": "players",
              "type": {
                "default": [],
                "items": "string",
                "type": "array"
              }
            }
          ],
          "name": "recordTeam",
          "type": "record"
        }
      }
    ],
    "id": "1do8zuDeZKfh2YSgzd2ek69jhOY",
    "title": "test schema"
  }
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.metadata.v1beta1.GetSchemaResponse
default Default An unexpected error response. google.rpc.Status

Removes schema from the system

Code samples

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.delete('https://mcls-api.mycujoo.tv/metadata/v1beta1/schemas/{id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "https://mcls-api.mycujoo.tv/metadata/v1beta1/schemas/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE https://mcls-api.mycujoo.tv/metadata/v1beta1/schemas/{id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/metadata/v1beta1/schemas/{id}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/metadata/v1beta1/schemas/{id}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

DELETE /metadata/v1beta1/schemas/{id}

Removes schema that matches specified id

Parameters

Name In Type Required Description
id path string true ID of the schema to delete

Example responses

200 Response

{
  "id": "ck9be30x30lnk1cmsengq2tq2"
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.metadata.v1beta1.DeleteSchemaResponse
default Default An unexpected error response. google.rpc.Status

Updates schema in the system by specified id

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

r = requests.patch('https://mcls-api.mycujoo.tv/metadata/v1beta1/schemas/{id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "https://mcls-api.mycujoo.tv/metadata/v1beta1/schemas/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PATCH https://mcls-api.mycujoo.tv/metadata/v1beta1/schemas/{id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "fields": [
    {
      "name": "title",
      "type": "string"
    }
  ],
  "title": "Final 2021"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/metadata/v1beta1/schemas/{id}',
{
  method: 'PATCH',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "fields": [
    {
      "name": "title",
      "type": "string"
    }
  ],
  "title": "Final 2021"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/metadata/v1beta1/schemas/{id}',
{
  method: 'PATCH',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PATCH /metadata/v1beta1/schemas/{id}

Updates schema that matches specified id

Body parameter

{
  "fields": [
    {
      "name": "title",
      "type": "string"
    }
  ],
  "title": "Final 2021"
}

Parameters

Name In Type Required Description
id path string true ID of the schema
body body mycujoo.metadata.v1beta1.UpdateSchemaRequest.UpdateFields true none

Example responses

200 Response

{
  "category": "string",
  "fields": [
    {}
  ],
  "id": "string",
  "title": "string"
}

Responses

Status Meaning Description Schema
200 OK Updated schema mycujoo.metadata.v1beta1.Schema
default Default An unexpected error response. google.rpc.Status

OrganizationsService

CreateOrganization

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

r = requests.post('https://mcls-api.mycujoo.tv/organizations/v1', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/organizations/v1", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/organizations/v1 HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "display_name": "string",
  "org_id": "string",
  "owner": {
    "email": "string",
    "first_name": "string",
    "last_name": "string"
  },
  "owner_password": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/organizations/v1',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "display_name": "string",
  "org_id": "string",
  "owner": {
    "email": "string",
    "first_name": "string",
    "last_name": "string"
  },
  "owner_password": "string"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/organizations/v1',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /organizations/v1

Creates a new organization. It requires information about primary account. We will also create a default project for the organization.

Body parameter

{
  "display_name": "string",
  "org_id": "string",
  "owner": {
    "email": "string",
    "first_name": "string",
    "last_name": "string"
  },
  "owner_password": "string"
}

Parameters

Name In Type Required Description
body body mycujoo.organizations.v1.CreateOrganizationRequest true none

Example responses

200 Response

{
  "organization": {
    "content_delivery_settings": {
      "embed_domains": [
        "string"
      ],
      "public_keys": [
        "string"
      ]
    },
    "display_name": "string",
    "id": "string",
    "is_enabled": true,
    "owner_id": "string"
  }
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.organizations.v1.CreateOrganizationResponse
default Default An unexpected error response. google.rpc.Status

OrganizationsService_TestIamPermissions

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.post('https://mcls-api.mycujoo.tv/organizations/v1/test_iam_permissions', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/organizations/v1/test_iam_permissions", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/organizations/v1/test_iam_permissions HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "permissions": [
    "projects.create",
    "projects.update",
    "projects.delete"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/organizations/v1/test_iam_permissions',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "permissions": [
    "projects.create",
    "projects.update",
    "projects.delete"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/organizations/v1/test_iam_permissions',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /organizations/v1/test_iam_permissions

Body parameter

{
  "permissions": [
    "projects.create",
    "projects.update",
    "projects.delete"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
}

Parameters

Name In Type Required Description
body body mycujoo.organizations.v1.TestIamPermissionsRequest true none

Example responses

200 Response

{
  "permissions": [
    "projects.create",
    "projects.update"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.organizations.v1.TestIamPermissionsResponse
default Default An unexpected error response. google.rpc.Status

GetOrganization

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/organizations/v1/{org_id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/organizations/v1/{org_id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/organizations/v1/{org_id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/organizations/v1/{org_id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/organizations/v1/{org_id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /organizations/v1/{org_id}

Will return information about existing organization.

Parameters

Name In Type Required Description
org_id path string true none

Example responses

200 Response

{
  "organization": {
    "content_delivery_settings": {
      "embed_domains": [
        "string"
      ],
      "public_keys": [
        "string"
      ]
    },
    "display_name": "string",
    "id": "string",
    "is_enabled": true,
    "owner_id": "string"
  }
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.organizations.v1.GetOrganizationResponse
default Default An unexpected error response. google.rpc.Status

UpdateOrganization

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.patch('https://mcls-api.mycujoo.tv/organizations/v1/{org_id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "https://mcls-api.mycujoo.tv/organizations/v1/{org_id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PATCH https://mcls-api.mycujoo.tv/organizations/v1/{org_id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "display_name": "string",
  "embed_domains": [
    "string"
  ]
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/organizations/v1/{org_id}',
{
  method: 'PATCH',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "display_name": "string",
  "embed_domains": [
    "string"
  ]
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/organizations/v1/{org_id}',
{
  method: 'PATCH',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PATCH /organizations/v1/{org_id}

This method will update some organization fields like display name or embed domains.

Body parameter

{
  "display_name": "string",
  "embed_domains": [
    "string"
  ]
}

Parameters

Name In Type Required Description
org_id path string true ID of the organization to be updated, must be the same as in the request JWT token
body body mycujoo.organizations.v1.OrganizationUpdateFields true Fields to update

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.organizations.v1.UpdateOrganizationResponse
400 Bad Request Bad input parameters Inline
500 Internal Server Error Internal Server Error Inline
default Default An unexpected error response. google.rpc.Status

Response Schema

GetIamPolicy

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/organizations/v1/{org_id}/iam_policy', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/organizations/v1/{org_id}/iam_policy", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/organizations/v1/{org_id}/iam_policy HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/organizations/v1/{org_id}/iam_policy',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/organizations/v1/{org_id}/iam_policy',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /organizations/v1/{org_id}/iam_policy

Returns current IAM policy for the organization. Use returned policy and etag to update policy.

Parameters

Name In Type Required Description
org_id path string true none

Example responses

200 Response

{
  "etag": "string",
  "policy": {
    "bindings": [
      {
        "account_ids": [
          "2GzbST9DaEPsNcDTaW30GWnfZyw",
          "2GzbTHf7FfMyGv2F71FWwGRzKWb"
        ],
        "role_id": "owner"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "projects.admin"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "accounts.admin"
      }
    ]
  },
  "resource_hierarchy": [
    {
      "id": "elevendata",
      "type": "project"
    }
  ],
  "resource_title": "string"
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.organizations.v1.GetIamPolicyResponse
default Default An unexpected error response. google.rpc.Status

SetIamPolicy

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.post('https://mcls-api.mycujoo.tv/organizations/v1/{org_id}/iam_policy', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/organizations/v1/{org_id}/iam_policy", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/organizations/v1/{org_id}/iam_policy HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "etag": "string",
  "policy": {
    "bindings": [
      {
        "account_ids": [
          "2GzbST9DaEPsNcDTaW30GWnfZyw",
          "2GzbTHf7FfMyGv2F71FWwGRzKWb"
        ],
        "role_id": "owner"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "projects.admin"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "accounts.admin"
      }
    ]
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/organizations/v1/{org_id}/iam_policy',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "etag": "string",
  "policy": {
    "bindings": [
      {
        "account_ids": [
          "2GzbST9DaEPsNcDTaW30GWnfZyw",
          "2GzbTHf7FfMyGv2F71FWwGRzKWb"
        ],
        "role_id": "owner"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "projects.admin"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "accounts.admin"
      }
    ]
  }
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/organizations/v1/{org_id}/iam_policy',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /organizations/v1/{org_id}/iam_policy

Set IAM policy for the organization. This method replaces all existing policy bindings for the organization. To prevent overwriting existing policy bindings that were written concurrently, use the etag field to perform a read-modify-write operation. For example: Making a new account to become a organization owner would require reading IAM Policy for the organization, add new binding or update existing binding with role_id: owner, and then set the new policy with etag returned by GetIamPolicy.

Body parameter

{
  "etag": "string",
  "policy": {
    "bindings": [
      {
        "account_ids": [
          "2GzbST9DaEPsNcDTaW30GWnfZyw",
          "2GzbTHf7FfMyGv2F71FWwGRzKWb"
        ],
        "role_id": "owner"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "projects.admin"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "accounts.admin"
      }
    ]
  }
}

Parameters

Name In Type Required Description
org_id path string true none
body body object true none
ยป etag body string(byte) false none
ยป policy body mycujoo.auth.v1.Policy true Authorization policy.
ยปยป bindings body [mycujoo.auth.v1.Binding] false List of bindings to the policy. If empty, the policy will not have any effect.
ยปยปยป account_ids body [string] false List of account identifiers (referencing mycujoo.accounts.v1.Account) that have the role.
ยปยปยป include_all_organization_accounts body boolean false If this is set to true then the role is granted to all accounts in the organization. It overrides the account_ids field.
ยปยปยป role_id body string false none

Detailed descriptions

ยปยป bindings: List of bindings to the policy. If empty, the policy will not have any effect. Total number of accounts referenced in the bindings should be up to 1500. If same account has multiple roles - it is counted multiple times.

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.organizations.v1.SetIamPolicyResponse
default Default An unexpected error response. google.rpc.Status

PackagesService

List packages

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/packages/v1beta1/packages', params={
  'order_by': 'ORDER_UNSPECIFIED',  'page_size': '0'
}, headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/packages/v1beta1/packages", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/packages/v1beta1/packages?order_by=ORDER_UNSPECIFIED&page_size=0 HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/packages/v1beta1/packages?order_by=ORDER_UNSPECIFIED&page_size=0',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/packages/v1beta1/packages?order_by=ORDER_UNSPECIFIED&page_size=0',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /packages/v1beta1/packages

Parameters

Name In Type Required Description
order_by query string true Specifies the result ordering
page_size query integer(int32) true Maximum number of records to return.
page_token query string false Token used for cursor pagination.
page_offset query integer(int32) false Offset from where to start returning data.
includes query array[string] false Specifies what response metadata should include.
search query string false Full text search on package name
event_id query string false Event ID which is bound to the package

Detailed descriptions

order_by: Specifies the result ordering

page_size: Maximum number of records to return. Must be between 1 and 100

page_token: Token used for cursor pagination. Cannot be used together with page_offset.

page_offset: Offset from where to start returning data. Cannot be used together with page_token.

includes: Specifies what response metadata should include. e.g. when 'INCLUDE_TOTAL_SIZE' is passed, response metadata will include total size of the result

Enumerated Values

Parameter Value
order_by ORDER_UNSPECIFIED
order_by ORDER_CREATE_TIME_ASC
order_by ORDER_CREATE_TIME_DESC
includes INCLUDE_UNSPECIFIED
includes INCLUDE_TOTAL_SIZE

Example responses

200 Response

{
  "next_page_token": "string",
  "packages": [
    {
      "concurrency_limit": 0,
      "create_time": "2019-08-24T14:15:22Z",
      "description": "string",
      "end_time": "2019-08-24T14:15:22Z",
      "id": "string",
      "metadata_references": [
        {
          "key": "string",
          "value": "string"
        }
      ],
      "name": "string",
      "start_time": "2019-08-24T14:15:22Z"
    }
  ],
  "total_size": 0
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.packages.v1beta1.ListPackagesResponse
default Default An unexpected error response. google.rpc.Status

Create package

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.post('https://mcls-api.mycujoo.tv/packages/v1beta1/packages', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/packages/v1beta1/packages", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/packages/v1beta1/packages HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "concurrency_limit": 0,
  "description": "string",
  "end_time": "2019-08-24T14:15:22Z",
  "metadata_references": [
    {
      "key": "string",
      "value": "string"
    }
  ],
  "name": "string",
  "start_time": "2019-08-24T14:15:22Z"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/packages/v1beta1/packages',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "concurrency_limit": 0,
  "description": "string",
  "end_time": "2019-08-24T14:15:22Z",
  "metadata_references": [
    {
      "key": "string",
      "value": "string"
    }
  ],
  "name": "string",
  "start_time": "2019-08-24T14:15:22Z"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/packages/v1beta1/packages',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /packages/v1beta1/packages

Body parameter

{
  "concurrency_limit": 0,
  "description": "string",
  "end_time": "2019-08-24T14:15:22Z",
  "metadata_references": [
    {
      "key": "string",
      "value": "string"
    }
  ],
  "name": "string",
  "start_time": "2019-08-24T14:15:22Z"
}

Parameters

Name In Type Required Description
body body mycujoo.packages.v1beta1.CreatePackageRequest true none

Example responses

200 Response

{
  "concurrency_limit": 0,
  "create_time": "2019-08-24T14:15:22Z",
  "description": "string",
  "end_time": "2019-08-24T14:15:22Z",
  "id": "string",
  "metadata_references": [
    {
      "key": "string",
      "value": "string"
    }
  ],
  "name": "string",
  "start_time": "2019-08-24T14:15:22Z"
}

Responses

Status Meaning Description Schema
200 OK Created package mycujoo.packages.v1beta1.Package
default Default An unexpected error response. google.rpc.Status

Batch Get package

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.post('https://mcls-api.mycujoo.tv/packages/v1beta1/packages/batch', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/packages/v1beta1/packages/batch", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/packages/v1beta1/packages/batch HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "ids": [
    "string"
  ]
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/packages/v1beta1/packages/batch',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "ids": [
    "string"
  ]
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/packages/v1beta1/packages/batch',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /packages/v1beta1/packages/batch

Body parameter

{
  "ids": [
    "string"
  ]
}

Parameters

Name In Type Required Description
body body mycujoo.packages.v1beta1.BatchGetPackagesRequest true none

Example responses

200 Response

{
  "packages": [
    {
      "concurrency_limit": 0,
      "create_time": "2019-08-24T14:15:22Z",
      "description": "string",
      "end_time": "2019-08-24T14:15:22Z",
      "id": "string",
      "metadata_references": [
        {
          "key": "string",
          "value": "string"
        }
      ],
      "name": "string",
      "start_time": "2019-08-24T14:15:22Z"
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.packages.v1beta1.BatchGetPackagesResponse
default Default An unexpected error response. google.rpc.Status

Get package

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/packages/v1beta1/packages/{id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/packages/v1beta1/packages/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/packages/v1beta1/packages/{id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/packages/v1beta1/packages/{id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/packages/v1beta1/packages/{id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /packages/v1beta1/packages/{id}

Parameters

Name In Type Required Description
id path string true ID of the package to retrieve

Example responses

200 Response

{
  "concurrency_limit": 0,
  "create_time": "2019-08-24T14:15:22Z",
  "description": "string",
  "end_time": "2019-08-24T14:15:22Z",
  "id": "string",
  "metadata_references": [
    {
      "key": "string",
      "value": "string"
    }
  ],
  "name": "string",
  "start_time": "2019-08-24T14:15:22Z"
}

Responses

Status Meaning Description Schema
200 OK Returned package mycujoo.packages.v1beta1.Package
default Default An unexpected error response. google.rpc.Status

Delete package

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.delete('https://mcls-api.mycujoo.tv/packages/v1beta1/packages/{id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "https://mcls-api.mycujoo.tv/packages/v1beta1/packages/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE https://mcls-api.mycujoo.tv/packages/v1beta1/packages/{id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/packages/v1beta1/packages/{id}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/packages/v1beta1/packages/{id}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

DELETE /packages/v1beta1/packages/{id}

Parameters

Name In Type Required Description
id path string true ID of the package to delete

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.packages.v1beta1.DeletePackageResponse
default Default An unexpected error response. google.rpc.Status

Updates package

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.patch('https://mcls-api.mycujoo.tv/packages/v1beta1/packages/{id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "https://mcls-api.mycujoo.tv/packages/v1beta1/packages/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PATCH https://mcls-api.mycujoo.tv/packages/v1beta1/packages/{id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "concurrency_limit": 0,
  "description": "string",
  "end_time": "2019-08-24T14:15:22Z",
  "metadata_references": [
    {
      "key": "string",
      "value": "string"
    }
  ],
  "name": "string",
  "start_time": "2019-08-24T14:15:22Z"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/packages/v1beta1/packages/{id}',
{
  method: 'PATCH',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "concurrency_limit": 0,
  "description": "string",
  "end_time": "2019-08-24T14:15:22Z",
  "metadata_references": [
    {
      "key": "string",
      "value": "string"
    }
  ],
  "name": "string",
  "start_time": "2019-08-24T14:15:22Z"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/packages/v1beta1/packages/{id}',
{
  method: 'PATCH',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PATCH /packages/v1beta1/packages/{id}

Body parameter

{
  "concurrency_limit": 0,
  "description": "string",
  "end_time": "2019-08-24T14:15:22Z",
  "metadata_references": [
    {
      "key": "string",
      "value": "string"
    }
  ],
  "name": "string",
  "start_time": "2019-08-24T14:15:22Z"
}

Parameters

Name In Type Required Description
id path string true none
body body mycujoo.packages.v1beta1.UpdatePackageRequest.UpdateFields true none

Example responses

200 Response

{
  "concurrency_limit": 0,
  "create_time": "2019-08-24T14:15:22Z",
  "description": "string",
  "end_time": "2019-08-24T14:15:22Z",
  "id": "string",
  "metadata_references": [
    {
      "key": "string",
      "value": "string"
    }
  ],
  "name": "string",
  "start_time": "2019-08-24T14:15:22Z"
}

Responses

Status Meaning Description Schema
200 OK Updated package mycujoo.packages.v1beta1.Package
default Default An unexpected error response. google.rpc.Status

GetPackageIamPolicy

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/packages/v1beta1/packages/{package_id}/iam_policy', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/packages/v1beta1/packages/{package_id}/iam_policy", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/packages/v1beta1/packages/{package_id}/iam_policy HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/packages/v1beta1/packages/{package_id}/iam_policy',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/packages/v1beta1/packages/{package_id}/iam_policy',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /packages/v1beta1/packages/{package_id}/iam_policy

Parameters

Name In Type Required Description
package_id path string true none

Example responses

200 Response

{
  "etag": "string",
  "policy": {
    "bindings": [
      {
        "account_ids": [
          "2GzbST9DaEPsNcDTaW30GWnfZyw",
          "2GzbTHf7FfMyGv2F71FWwGRzKWb"
        ],
        "role_id": "owner"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "projects.admin"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "accounts.admin"
      }
    ]
  },
  "resource_hierarchy": [
    {
      "id": "elevendata",
      "type": "project"
    }
  ],
  "resource_title": "string"
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.packages.v1beta1.GetPackageIamPolicyResponse
default Default An unexpected error response. google.rpc.Status

SetPackageIamPolicy

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.post('https://mcls-api.mycujoo.tv/packages/v1beta1/packages/{package_id}/iam_policy', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/packages/v1beta1/packages/{package_id}/iam_policy", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/packages/v1beta1/packages/{package_id}/iam_policy HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "etag": "string",
  "policy": {
    "bindings": [
      {
        "account_ids": [
          "2GzbST9DaEPsNcDTaW30GWnfZyw",
          "2GzbTHf7FfMyGv2F71FWwGRzKWb"
        ],
        "role_id": "owner"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "projects.admin"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "accounts.admin"
      }
    ]
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/packages/v1beta1/packages/{package_id}/iam_policy',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "etag": "string",
  "policy": {
    "bindings": [
      {
        "account_ids": [
          "2GzbST9DaEPsNcDTaW30GWnfZyw",
          "2GzbTHf7FfMyGv2F71FWwGRzKWb"
        ],
        "role_id": "owner"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "projects.admin"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "accounts.admin"
      }
    ]
  }
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/packages/v1beta1/packages/{package_id}/iam_policy',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /packages/v1beta1/packages/{package_id}/iam_policy

Body parameter

{
  "etag": "string",
  "policy": {
    "bindings": [
      {
        "account_ids": [
          "2GzbST9DaEPsNcDTaW30GWnfZyw",
          "2GzbTHf7FfMyGv2F71FWwGRzKWb"
        ],
        "role_id": "owner"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "projects.admin"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "accounts.admin"
      }
    ]
  }
}

Parameters

Name In Type Required Description
package_id path string true none
body body object true none
ยป etag body string(byte) false none
ยป policy body mycujoo.auth.v1.Policy true Authorization policy.
ยปยป bindings body [mycujoo.auth.v1.Binding] false List of bindings to the policy. If empty, the policy will not have any effect.
ยปยปยป account_ids body [string] false List of account identifiers (referencing mycujoo.accounts.v1.Account) that have the role.
ยปยปยป include_all_organization_accounts body boolean false If this is set to true then the role is granted to all accounts in the organization. It overrides the account_ids field.
ยปยปยป role_id body string false none

Detailed descriptions

ยปยป bindings: List of bindings to the policy. If empty, the policy will not have any effect. Total number of accounts referenced in the bindings should be up to 1500. If same account has multiple roles - it is counted multiple times.

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.packages.v1beta1.SetPackageIamPolicyResponse
default Default An unexpected error response. google.rpc.Status

TestIamPermissions

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.post('https://mcls-api.mycujoo.tv/packages/v1beta1/test_iam_permissions', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/packages/v1beta1/test_iam_permissions", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/packages/v1beta1/test_iam_permissions HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "permissions": [
    "projects.create",
    "projects.update",
    "projects.delete"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/packages/v1beta1/test_iam_permissions',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "permissions": [
    "projects.create",
    "projects.update",
    "projects.delete"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/packages/v1beta1/test_iam_permissions',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /packages/v1beta1/test_iam_permissions

This method validates the current account given a list of permissions. Used for UI

Body parameter

{
  "permissions": [
    "projects.create",
    "projects.update",
    "projects.delete"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
}

Parameters

Name In Type Required Description
body body mycujoo.packages.v1beta1.TestIamPermissionsRequest true none

Example responses

200 Response

{
  "permissions": [
    "projects.create",
    "projects.update"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.packages.v1beta1.TestIamPermissionsResponse
default Default An unexpected error response. google.rpc.Status

PlayerConfigsService

GetPlayerConfig returns a player config by identifier

Code samples

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('https://mcls-api.mycujoo.tv/playerconfig/v1beta1', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/playerconfig/v1beta1", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/playerconfig/v1beta1 HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/playerconfig/v1beta1',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/playerconfig/v1beta1',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /playerconfig/v1beta1

Example responses

200 Response

{
  "player_config": {
    "ima_ad_unit": "string"
  }
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.playerconfig.v1beta1.GetPlayerConfigResponse
default Default An unexpected error response. google.rpc.Status

UpdatePlayerConfig stores player config in the service

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

r = requests.put('https://mcls-api.mycujoo.tv/playerconfig/v1beta1', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "https://mcls-api.mycujoo.tv/playerconfig/v1beta1", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT https://mcls-api.mycujoo.tv/playerconfig/v1beta1 HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "ima_ad_unit": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/playerconfig/v1beta1',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "ima_ad_unit": "string"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/playerconfig/v1beta1',
{
  method: 'PUT',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PUT /playerconfig/v1beta1

Body parameter

{
  "ima_ad_unit": "string"
}

Parameters

Name In Type Required Description
body body mycujoo.playerconfig.v1beta1.UpdatePlayerConfigRequest true none

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.playerconfig.v1beta1.UpdatePlayerConfigResponse
default Default An unexpected error response. google.rpc.Status

ProjectsService

ListProjects will return list of projects that user has access to

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/projects/v1', params={
  'page_size': '0'
}, headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/projects/v1", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/projects/v1?page_size=0 HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/projects/v1?page_size=0',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/projects/v1?page_size=0',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /projects/v1

Parameters

Name In Type Required Description
page_size query integer(int32) true none
page_token query string false none

Example responses

200 Response

{
  "next_page_token": "string",
  "projects": [
    {
      "content_visibility": "CONTENT_VISIBILITY_UNSPECIFIED",
      "display_name": "string",
      "id": "string",
      "is_disabled": true
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.projects.v1.ListProjectsResponse
default Default An unexpected error response. google.rpc.Status

CreateProject will create new project within the organization of calling user

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.post('https://mcls-api.mycujoo.tv/projects/v1', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/projects/v1", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/projects/v1 HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "display_name": "string",
  "project_id": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/projects/v1',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "display_name": "string",
  "project_id": "string"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/projects/v1',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /projects/v1

Body parameter

{
  "display_name": "string",
  "project_id": "string"
}

Parameters

Name In Type Required Description
body body mycujoo.projects.v1.CreateProjectRequest true none

Example responses

200 Response

{
  "project": {
    "content_visibility": "CONTENT_VISIBILITY_UNSPECIFIED",
    "display_name": "string",
    "id": "string",
    "is_disabled": true
  }
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.projects.v1.CreateProjectResponse
default Default An unexpected error response. google.rpc.Status

ProjectsService_TestIamPermissions

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.post('https://mcls-api.mycujoo.tv/projects/v1/test_iam_permissions', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/projects/v1/test_iam_permissions", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/projects/v1/test_iam_permissions HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "permissions": [
    "projects.create",
    "projects.update",
    "projects.delete"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/projects/v1/test_iam_permissions',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "permissions": [
    "projects.create",
    "projects.update",
    "projects.delete"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/projects/v1/test_iam_permissions',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /projects/v1/test_iam_permissions

Body parameter

{
  "permissions": [
    "projects.create",
    "projects.update",
    "projects.delete"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
}

Parameters

Name In Type Required Description
body body mycujoo.projects.v1.TestIamPermissionsRequest true none

Example responses

200 Response

{
  "permissions": [
    "projects.create",
    "projects.update"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.projects.v1.TestIamPermissionsResponse
default Default An unexpected error response. google.rpc.Status

GetProject will return information about the project. Project must belong to organization of the user account

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/projects/v1/{project_id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/projects/v1/{project_id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/projects/v1/{project_id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/projects/v1/{project_id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/projects/v1/{project_id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /projects/v1/{project_id}

Parameters

Name In Type Required Description
project_id path string true none

Example responses

200 Response

{
  "project": {
    "content_visibility": "CONTENT_VISIBILITY_UNSPECIFIED",
    "display_name": "string",
    "id": "string",
    "is_disabled": true
  }
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.projects.v1.GetProjectResponse
default Default An unexpected error response. google.rpc.Status

DeleteProject

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.delete('https://mcls-api.mycujoo.tv/projects/v1/{project_id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "https://mcls-api.mycujoo.tv/projects/v1/{project_id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE https://mcls-api.mycujoo.tv/projects/v1/{project_id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/projects/v1/{project_id}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/projects/v1/{project_id}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

DELETE /projects/v1/{project_id}

Deletes the project and all resources within that project.

Parameters

Name In Type Required Description
project_id path string true none

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.projects.v1.DeleteProjectResponse
default Default An unexpected error response. google.rpc.Status

UpdateProject

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.patch('https://mcls-api.mycujoo.tv/projects/v1/{project_id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "https://mcls-api.mycujoo.tv/projects/v1/{project_id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PATCH https://mcls-api.mycujoo.tv/projects/v1/{project_id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "content_visibility": "CONTENT_VISIBILITY_UNSPECIFIED",
  "display_name": "string",
  "id": "string",
  "is_disabled": true
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/projects/v1/{project_id}',
{
  method: 'PATCH',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "content_visibility": "CONTENT_VISIBILITY_UNSPECIFIED",
  "display_name": "string",
  "id": "string",
  "is_disabled": true
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/projects/v1/{project_id}',
{
  method: 'PATCH',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PATCH /projects/v1/{project_id}

Updates project's basic fields (i.e. display_name)

Body parameter

{
  "content_visibility": "CONTENT_VISIBILITY_UNSPECIFIED",
  "display_name": "string",
  "id": "string",
  "is_disabled": true
}

Parameters

Name In Type Required Description
project_id path string true none
body body mycujoo.projects.v1.Project true none

Example responses

200 Response

{
  "content_visibility": "CONTENT_VISIBILITY_UNSPECIFIED",
  "display_name": "string",
  "id": "string",
  "is_disabled": true
}

Responses

Status Meaning Description Schema
200 OK (empty) mycujoo.projects.v1.Project
404 Not Found Project not found Inline
500 Internal Server Error Internal Server Error Inline
default Default An unexpected error response. google.rpc.Status

Response Schema

GetIamPolicy

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/projects/v1/{project_id}/iam_policy', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/projects/v1/{project_id}/iam_policy", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/projects/v1/{project_id}/iam_policy HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/projects/v1/{project_id}/iam_policy',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/projects/v1/{project_id}/iam_policy',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /projects/v1/{project_id}/iam_policy

Returns current IAM policy for the project. Use returned policy and etag to update policy.

Parameters

Name In Type Required Description
project_id path string true none

Example responses

200 Response

{
  "etag": "string",
  "policy": {
    "bindings": [
      {
        "account_ids": [
          "2GzbST9DaEPsNcDTaW30GWnfZyw",
          "2GzbTHf7FfMyGv2F71FWwGRzKWb"
        ],
        "role_id": "owner"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "projects.admin"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "accounts.admin"
      }
    ]
  },
  "resource_hierarchy": [
    {
      "id": "elevendata",
      "type": "project"
    }
  ],
  "resource_title": "string"
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.projects.v1.GetIamPolicyResponse
default Default An unexpected error response. google.rpc.Status

SetIamPolicy

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.post('https://mcls-api.mycujoo.tv/projects/v1/{project_id}/iam_policy', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/projects/v1/{project_id}/iam_policy", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/projects/v1/{project_id}/iam_policy HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "etag": "string",
  "policy": {
    "bindings": [
      {
        "account_ids": [
          "2GzbST9DaEPsNcDTaW30GWnfZyw",
          "2GzbTHf7FfMyGv2F71FWwGRzKWb"
        ],
        "role_id": "owner"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "projects.admin"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "accounts.admin"
      }
    ]
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/projects/v1/{project_id}/iam_policy',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "etag": "string",
  "policy": {
    "bindings": [
      {
        "account_ids": [
          "2GzbST9DaEPsNcDTaW30GWnfZyw",
          "2GzbTHf7FfMyGv2F71FWwGRzKWb"
        ],
        "role_id": "owner"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "projects.admin"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "accounts.admin"
      }
    ]
  }
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/projects/v1/{project_id}/iam_policy',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /projects/v1/{project_id}/iam_policy

Set IAM policy for the project. This method replaces all existing policy bindings for the project. To prevent overwriting existing policy bindings that were written concurrently, use the etag field to perform a read-modify-write operation. For example: Making a new account to become a project owner would require reading IAM Policy for the project, add new binding or update existing binding with role_id: owner, and then set the new policy with etag returned by GetIamPolicy.

Body parameter

{
  "etag": "string",
  "policy": {
    "bindings": [
      {
        "account_ids": [
          "2GzbST9DaEPsNcDTaW30GWnfZyw",
          "2GzbTHf7FfMyGv2F71FWwGRzKWb"
        ],
        "role_id": "owner"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "projects.admin"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "accounts.admin"
      }
    ]
  }
}

Parameters

Name In Type Required Description
project_id path string true none
body body object true none
ยป etag body string(byte) false none
ยป policy body mycujoo.auth.v1.Policy true Authorization policy.
ยปยป bindings body [mycujoo.auth.v1.Binding] false List of bindings to the policy. If empty, the policy will not have any effect.
ยปยปยป account_ids body [string] false List of account identifiers (referencing mycujoo.accounts.v1.Account) that have the role.
ยปยปยป include_all_organization_accounts body boolean false If this is set to true then the role is granted to all accounts in the organization. It overrides the account_ids field.
ยปยปยป role_id body string false none

Detailed descriptions

ยปยป bindings: List of bindings to the policy. If empty, the policy will not have any effect. Total number of accounts referenced in the bindings should be up to 1500. If same account has multiple roles - it is counted multiple times.

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.projects.v1.SetIamPolicyResponse
default Default An unexpected error response. google.rpc.Status

StreamService

Returns asset information

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/streaming/v1/assets/recording/{id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/streaming/v1/assets/recording/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/streaming/v1/assets/recording/{id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/assets/recording/{id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/assets/recording/{id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /streaming/v1/assets/recording/{id}

Get recording's asset information

Parameters

Name In Type Required Description
id path string true The asset's id

Example responses

200 Response

{
  "asset_url": "string",
  "id": "string",
  "is_concatenated": true,
  "status": "STATUS_UNSPECIFIED",
  "stream_id": "string",
  "stream_key": "string"
}

Responses

Status Meaning Description Schema
200 OK (empty) mycujoo.streaming.v1.RecordingAsset
default Default An unexpected error response. google.rpc.Status

Deletes a single recording asset

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.delete('https://mcls-api.mycujoo.tv/streaming/v1/assets/recording/{id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "https://mcls-api.mycujoo.tv/streaming/v1/assets/recording/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE https://mcls-api.mycujoo.tv/streaming/v1/assets/recording/{id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/assets/recording/{id}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/assets/recording/{id}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

DELETE /streaming/v1/assets/recording/{id}

Deletes a single recording asset

Parameters

Name In Type Required Description
id path string true none

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.streaming.v1.DeleteRecordingAssetResponse
default Default An unexpected error response. google.rpc.Status

Returns a list of clips

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/streaming/v1/clips', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/streaming/v1/clips", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/streaming/v1/clips HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/clips',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/clips',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /streaming/v1/clips

List all clips

Parameters

Name In Type Required Description
filter query string false Filter options, can be filtered by the stream_id, or duration for example.
page_size query integer(int32) false A positive number that is the maximum number of results to return.
page_token query string false If this field is not empty then it must contain the next_page_token value

Detailed descriptions

page_token: If this field is not empty then it must contain the next_page_token value returned by a previous call to this method. Using this field causes the method to return additional results from the previous method call.

Example responses

200 Response

{
  "clips": [
    {
      "actual_duration": 0,
      "actual_position": 0,
      "created_time": "2019-08-24T14:15:22Z",
      "download": {
        "full_url": "string",
        "size": "string"
      },
      "download_state": "DOWNLOAD_STATE_UNSPECIFIED",
      "full_url": "string",
      "id": "string",
      "state": "CLIP_STATE_UNSPECIFIED",
      "stream_id": "string",
      "title": "string",
      "updated_time": "2019-08-24T14:15:22Z"
    }
  ],
  "next_page_token": "string"
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.streaming.v1.ListClipsResponse
default Default An unexpected error response. google.rpc.Status

Creates a new Clip

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.post('https://mcls-api.mycujoo.tv/streaming/v1/clips', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/streaming/v1/clips", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/streaming/v1/clips HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "duration": 0,
  "offset": 0,
  "position": 0,
  "request_download": true,
  "stream_id": "string",
  "title": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/clips',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "duration": 0,
  "offset": 0,
  "position": 0,
  "request_download": true,
  "stream_id": "string",
  "title": "string"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/clips',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /streaming/v1/clips

Creates a new clip

Body parameter

{
  "duration": 0,
  "offset": 0,
  "position": 0,
  "request_download": true,
  "stream_id": "string",
  "title": "string"
}

Parameters

Name In Type Required Description
body body mycujoo.streaming.v1.ClipRequest true none

Example responses

200 Response

{
  "actual_duration": 0,
  "actual_position": 0,
  "created_time": "2019-08-24T14:15:22Z",
  "download": {
    "full_url": "string",
    "size": "string"
  },
  "download_state": "DOWNLOAD_STATE_UNSPECIFIED",
  "full_url": "string",
  "id": "string",
  "state": "CLIP_STATE_UNSPECIFIED",
  "stream_id": "string",
  "title": "string",
  "updated_time": "2019-08-24T14:15:22Z"
}

Responses

Status Meaning Description Schema
200 OK (empty) mycujoo.streaming.v1.ClipResponse
default Default An unexpected error response. google.rpc.Status

StreamService_ClipTestIamPermissions

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.post('https://mcls-api.mycujoo.tv/streaming/v1/clips/test_iam_permissions', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/streaming/v1/clips/test_iam_permissions", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/streaming/v1/clips/test_iam_permissions HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "permissions": [
    "projects.create",
    "projects.update",
    "projects.delete"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/clips/test_iam_permissions',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "permissions": [
    "projects.create",
    "projects.update",
    "projects.delete"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/clips/test_iam_permissions',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /streaming/v1/clips/test_iam_permissions

Body parameter

{
  "permissions": [
    "projects.create",
    "projects.update",
    "projects.delete"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
}

Parameters

Name In Type Required Description
body body mycujoo.streaming.v1.ClipTestIamPermissionsRequest true none

Example responses

200 Response

{
  "permissions": [
    "projects.create",
    "projects.update"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.streaming.v1.ClipTestIamPermissionsResponse
default Default An unexpected error response. google.rpc.Status

GetClipIamPolicy

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/streaming/v1/clips/{clip_id}/iam_policy', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/streaming/v1/clips/{clip_id}/iam_policy", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/streaming/v1/clips/{clip_id}/iam_policy HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/clips/{clip_id}/iam_policy',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/clips/{clip_id}/iam_policy',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /streaming/v1/clips/{clip_id}/iam_policy

Returns current IAM policy for the clip. Use returned policy and etag to update policy.

Parameters

Name In Type Required Description
clip_id path string true none

Example responses

200 Response

{
  "etag": "string",
  "policy": {
    "bindings": [
      {
        "account_ids": [
          "2GzbST9DaEPsNcDTaW30GWnfZyw",
          "2GzbTHf7FfMyGv2F71FWwGRzKWb"
        ],
        "role_id": "owner"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "projects.admin"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "accounts.admin"
      }
    ]
  }
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.streaming.v1.GetClipIamPolicyResponse
default Default An unexpected error response. google.rpc.Status

SetClipIamPolicy

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.post('https://mcls-api.mycujoo.tv/streaming/v1/clips/{clip_id}/iam_policy', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/streaming/v1/clips/{clip_id}/iam_policy", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/streaming/v1/clips/{clip_id}/iam_policy HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "etag": "string",
  "policy": {
    "bindings": [
      {
        "account_ids": [
          "2GzbST9DaEPsNcDTaW30GWnfZyw",
          "2GzbTHf7FfMyGv2F71FWwGRzKWb"
        ],
        "role_id": "owner"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "projects.admin"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "accounts.admin"
      }
    ]
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/clips/{clip_id}/iam_policy',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "etag": "string",
  "policy": {
    "bindings": [
      {
        "account_ids": [
          "2GzbST9DaEPsNcDTaW30GWnfZyw",
          "2GzbTHf7FfMyGv2F71FWwGRzKWb"
        ],
        "role_id": "owner"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "projects.admin"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "accounts.admin"
      }
    ]
  }
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/clips/{clip_id}/iam_policy',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /streaming/v1/clips/{clip_id}/iam_policy

Set IAM policy for the clip. This method replaces all existing policy bindings for the clip. To prevent overwriting existing policy bindings that were written concurrently, use the etag field to perform a read-modify-write operation.

Body parameter

{
  "etag": "string",
  "policy": {
    "bindings": [
      {
        "account_ids": [
          "2GzbST9DaEPsNcDTaW30GWnfZyw",
          "2GzbTHf7FfMyGv2F71FWwGRzKWb"
        ],
        "role_id": "owner"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "projects.admin"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "accounts.admin"
      }
    ]
  }
}

Parameters

Name In Type Required Description
clip_id path string true none
body body object true none
ยป etag body string(byte) false none
ยป policy body mycujoo.auth.v1.Policy true Authorization policy.
ยปยป bindings body [mycujoo.auth.v1.Binding] false List of bindings to the policy. If empty, the policy will not have any effect.
ยปยปยป account_ids body [string] false List of account identifiers (referencing mycujoo.accounts.v1.Account) that have the role.
ยปยปยป include_all_organization_accounts body boolean false If this is set to true then the role is granted to all accounts in the organization. It overrides the account_ids field.
ยปยปยป role_id body string false none

Detailed descriptions

ยปยป bindings: List of bindings to the policy. If empty, the policy will not have any effect. Total number of accounts referenced in the bindings should be up to 1500. If same account has multiple roles - it is counted multiple times.

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.streaming.v1.SetClipIamPolicyResponse
default Default An unexpected error response. google.rpc.Status

Returns a single clip

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/streaming/v1/clips/{id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/streaming/v1/clips/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/streaming/v1/clips/{id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/clips/{id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/clips/{id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /streaming/v1/clips/{id}

Fetches a single clip

Parameters

Name In Type Required Description
id path string true none

Example responses

200 Response

{
  "actual_duration": 0,
  "actual_position": 0,
  "created_time": "2019-08-24T14:15:22Z",
  "download": {
    "full_url": "string",
    "size": "string"
  },
  "download_state": "DOWNLOAD_STATE_UNSPECIFIED",
  "full_url": "string",
  "id": "string",
  "state": "CLIP_STATE_UNSPECIFIED",
  "stream_id": "string",
  "title": "string",
  "updated_time": "2019-08-24T14:15:22Z"
}

Responses

Status Meaning Description Schema
200 OK (empty) mycujoo.streaming.v1.ClipResponse
default Default An unexpected error response. google.rpc.Status

Deletes a single clip

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.delete('https://mcls-api.mycujoo.tv/streaming/v1/clips/{id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "https://mcls-api.mycujoo.tv/streaming/v1/clips/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE https://mcls-api.mycujoo.tv/streaming/v1/clips/{id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/clips/{id}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/clips/{id}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

DELETE /streaming/v1/clips/{id}

Deletes a single clip

Parameters

Name In Type Required Description
id path string true none

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.streaming.v1.DeleteClipResponse
default Default An unexpected error response. google.rpc.Status

Updates a clip

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.patch('https://mcls-api.mycujoo.tv/streaming/v1/clips/{id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "https://mcls-api.mycujoo.tv/streaming/v1/clips/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PATCH https://mcls-api.mycujoo.tv/streaming/v1/clips/{id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "duration": 0,
  "offset": 0,
  "position": 0,
  "request_download": true,
  "stream_id": "string",
  "title": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/clips/{id}',
{
  method: 'PATCH',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "duration": 0,
  "offset": 0,
  "position": 0,
  "request_download": true,
  "stream_id": "string",
  "title": "string"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/clips/{id}',
{
  method: 'PATCH',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PATCH /streaming/v1/clips/{id}

Updates a clip

Body parameter

{
  "duration": 0,
  "offset": 0,
  "position": 0,
  "request_download": true,
  "stream_id": "string",
  "title": "string"
}

Parameters

Name In Type Required Description
id path string true none
body body mycujoo.streaming.v1.ClipRequest true Update

Example responses

200 Response

{
  "actual_duration": 0,
  "actual_position": 0,
  "created_time": "2019-08-24T14:15:22Z",
  "download": {
    "full_url": "string",
    "size": "string"
  },
  "download_state": "DOWNLOAD_STATE_UNSPECIFIED",
  "full_url": "string",
  "id": "string",
  "state": "CLIP_STATE_UNSPECIFIED",
  "stream_id": "string",
  "title": "string",
  "updated_time": "2019-08-24T14:15:22Z"
}

Responses

Status Meaning Description Schema
200 OK (empty) mycujoo.streaming.v1.ClipResponse
default Default An unexpected error response. google.rpc.Status

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.post('https://mcls-api.mycujoo.tv/streaming/v1/clips/{id}/download', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/streaming/v1/clips/{id}/download", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/streaming/v1/clips/{id}/download HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/clips/{id}/download',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/clips/{id}/download',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /streaming/v1/clips/{id}/download

Creates a downloadable link for the requested clip

Name In Type Required Description
id path string true none
height query integer(int32) false The output file height. E.g 1080, 720, 480, etc. If you don't set it, the output will be the highest available quality.

Example responses

200 Response

{
  "download": {
    "full_url": "string",
    "size": "string"
  },
  "download_state": "DOWNLOAD_STATE_UNSPECIFIED"
}
Status Meaning Description Schema
200 OK A successful response. mycujoo.streaming.v1.PostClipDownloadResponse
default Default An unexpected error response. google.rpc.Status

Returns a list of stream configs

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/streaming/v1/configs', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/streaming/v1/configs", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/streaming/v1/configs HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/configs',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/configs',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /streaming/v1/configs

Returns all the configs connected to your account.

Parameters

Name In Type Required Description
page_size query integer(int32) false A positive number that is the maximum number of results to return.
page_token query string false If this field is not empty then it must contain the next_page_token value
filter query string false Filter options, can be filtered by the is_system for example.

Detailed descriptions

page_token: If this field is not empty then it must contain the next_page_token value returned by a previous call to this method. Using this field causes the method to return additional results from the previous method call.

filter: Filter options, can be filtered by the is_system for example. e.g is_system=true The value of the filter should be URL encoded

Example responses

200 Response

{
  "configs": [
    {
      "auto_enable_vpn_blocking": true,
      "default": true,
      "dvr_settings": {
        "automatic_vod": true,
        "enabled": true,
        "stop_transcoding_full_dvr": true,
        "window_size": 1
      },
      "enable_pull_endpoint": true,
      "enable_raw_pull_endpoint": true,
      "id": "string",
      "is_system": true,
      "name": "string",
      "recording_settings": {
        "autostart": true,
        "enabled": true,
        "record_during_transcoding": true
      },
      "scene_settings": {
        "is_enabled": true,
        "key_color": "SCENE_KEY_COLOR_UNSPECIFIED",
        "scene_id": "string"
      },
      "secure_link": true,
      "transcoding_settings": {
        "audio_bitrate": 32,
        "autostart": true,
        "drm": {
          "fairplay": true,
          "playready": true,
          "widevine": true
        },
        "enabled": true,
        "follow_source_fps": true,
        "gop": 25,
        "interlacing_filter_mode": "INTERLACING_FILTER_MODE_UNSPECIFIED",
        "key_frame_interval": 1,
        "level": 0.1,
        "llhls_settings": {
          "is_enabled": true,
          "part_size": 250,
          "segment_count": 10,
          "segment_size": 1
        },
        "low_latency": true,
        "profile": "TRANSCODING_PROFILE_UNSPECIFIED",
        "segment_size": 1,
        "tracking_pixel": true,
        "use_cdn": true,
        "video_representation_ids": [
          "string"
        ],
        "watermark": {
          "enabled": true,
          "url": "https://images.mls.mycujoo.tv/example.png"
        }
      }
    }
  ],
  "next_page_token": "string"
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.streaming.v1.ListConfigsResponse
default Default An unexpected error response. google.rpc.Status

Creates a new stream config

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.post('https://mcls-api.mycujoo.tv/streaming/v1/configs', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/streaming/v1/configs", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/streaming/v1/configs HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "auto_enable_vpn_blocking": true,
  "default": true,
  "dvr_settings": {
    "automatic_vod": true,
    "enabled": true,
    "stop_transcoding_full_dvr": true,
    "window_size": 1
  },
  "enable_pull_endpoint": true,
  "enable_raw_pull_endpoint": true,
  "name": "string",
  "recording_settings": {
    "autostart": true,
    "enabled": true,
    "record_during_transcoding": true
  },
  "scene_settings": {
    "is_enabled": true,
    "key_color": "SCENE_KEY_COLOR_UNSPECIFIED",
    "scene_id": "string"
  },
  "secure_link": true,
  "transcoding_settings": {
    "audio_bitrate": 32,
    "autostart": true,
    "drm": {
      "fairplay": true,
      "playready": true,
      "widevine": true
    },
    "enabled": true,
    "follow_source_fps": true,
    "gop": 25,
    "interlacing_filter_mode": "INTERLACING_FILTER_MODE_UNSPECIFIED",
    "key_frame_interval": 1,
    "level": 0.1,
    "llhls_settings": {
      "is_enabled": true,
      "part_size": 250,
      "segment_count": 10,
      "segment_size": 1
    },
    "low_latency": true,
    "profile": "TRANSCODING_PROFILE_UNSPECIFIED",
    "segment_size": 1,
    "tracking_pixel": true,
    "use_cdn": true,
    "video_representation_ids": [
      "string"
    ],
    "watermark": {
      "enabled": true,
      "url": "https://images.mls.mycujoo.tv/example.png"
    }
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/configs',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "auto_enable_vpn_blocking": true,
  "default": true,
  "dvr_settings": {
    "automatic_vod": true,
    "enabled": true,
    "stop_transcoding_full_dvr": true,
    "window_size": 1
  },
  "enable_pull_endpoint": true,
  "enable_raw_pull_endpoint": true,
  "name": "string",
  "recording_settings": {
    "autostart": true,
    "enabled": true,
    "record_during_transcoding": true
  },
  "scene_settings": {
    "is_enabled": true,
    "key_color": "SCENE_KEY_COLOR_UNSPECIFIED",
    "scene_id": "string"
  },
  "secure_link": true,
  "transcoding_settings": {
    "audio_bitrate": 32,
    "autostart": true,
    "drm": {
      "fairplay": true,
      "playready": true,
      "widevine": true
    },
    "enabled": true,
    "follow_source_fps": true,
    "gop": 25,
    "interlacing_filter_mode": "INTERLACING_FILTER_MODE_UNSPECIFIED",
    "key_frame_interval": 1,
    "level": 0.1,
    "llhls_settings": {
      "is_enabled": true,
      "part_size": 250,
      "segment_count": 10,
      "segment_size": 1
    },
    "low_latency": true,
    "profile": "TRANSCODING_PROFILE_UNSPECIFIED",
    "segment_size": 1,
    "tracking_pixel": true,
    "use_cdn": true,
    "video_representation_ids": [
      "string"
    ],
    "watermark": {
      "enabled": true,
      "url": "https://images.mls.mycujoo.tv/example.png"
    }
  }
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/configs',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /streaming/v1/configs

Creates a new stream configuration.

Body parameter

{
  "auto_enable_vpn_blocking": true,
  "default": true,
  "dvr_settings": {
    "automatic_vod": true,
    "enabled": true,
    "stop_transcoding_full_dvr": true,
    "window_size": 1
  },
  "enable_pull_endpoint": true,
  "enable_raw_pull_endpoint": true,
  "name": "string",
  "recording_settings": {
    "autostart": true,
    "enabled": true,
    "record_during_transcoding": true
  },
  "scene_settings": {
    "is_enabled": true,
    "key_color": "SCENE_KEY_COLOR_UNSPECIFIED",
    "scene_id": "string"
  },
  "secure_link": true,
  "transcoding_settings": {
    "audio_bitrate": 32,
    "autostart": true,
    "drm": {
      "fairplay": true,
      "playready": true,
      "widevine": true
    },
    "enabled": true,
    "follow_source_fps": true,
    "gop": 25,
    "interlacing_filter_mode": "INTERLACING_FILTER_MODE_UNSPECIFIED",
    "key_frame_interval": 1,
    "level": 0.1,
    "llhls_settings": {
      "is_enabled": true,
      "part_size": 250,
      "segment_count": 10,
      "segment_size": 1
    },
    "low_latency": true,
    "profile": "TRANSCODING_PROFILE_UNSPECIFIED",
    "segment_size": 1,
    "tracking_pixel": true,
    "use_cdn": true,
    "video_representation_ids": [
      "string"
    ],
    "watermark": {
      "enabled": true,
      "url": "https://images.mls.mycujoo.tv/example.png"
    }
  }
}

Parameters

Name In Type Required Description
body body mycujoo.streaming.v1.StreamConfigUpdate true none

Example responses

200 Response

{
  "auto_enable_vpn_blocking": true,
  "default": true,
  "dvr_settings": {
    "automatic_vod": true,
    "enabled": true,
    "stop_transcoding_full_dvr": true,
    "window_size": 1
  },
  "enable_pull_endpoint": true,
  "enable_raw_pull_endpoint": true,
  "id": "string",
  "is_system": true,
  "name": "string",
  "recording_settings": {
    "autostart": true,
    "enabled": true,
    "record_during_transcoding": true
  },
  "scene_settings": {
    "is_enabled": true,
    "key_color": "SCENE_KEY_COLOR_UNSPECIFIED",
    "scene_id": "string"
  },
  "secure_link": true,
  "transcoding_settings": {
    "audio_bitrate": 32,
    "autostart": true,
    "drm": {
      "fairplay": true,
      "playready": true,
      "widevine": true
    },
    "enabled": true,
    "follow_source_fps": true,
    "gop": 25,
    "interlacing_filter_mode": "INTERLACING_FILTER_MODE_UNSPECIFIED",
    "key_frame_interval": 1,
    "level": 0.1,
    "llhls_settings": {
      "is_enabled": true,
      "part_size": 250,
      "segment_count": 10,
      "segment_size": 1
    },
    "low_latency": true,
    "profile": "TRANSCODING_PROFILE_UNSPECIFIED",
    "segment_size": 1,
    "tracking_pixel": true,
    "use_cdn": true,
    "video_representation_ids": [
      "string"
    ],
    "watermark": {
      "enabled": true,
      "url": "https://images.mls.mycujoo.tv/example.png"
    }
  }
}

Responses

Status Meaning Description Schema
200 OK (empty) mycujoo.streaming.v1.StreamConfig
default Default An unexpected error response. google.rpc.Status

StreamService_StreamingConfigTestIamPermissions

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.post('https://mcls-api.mycujoo.tv/streaming/v1/configs/test_iam_permissions', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/streaming/v1/configs/test_iam_permissions", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/streaming/v1/configs/test_iam_permissions HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "permissions": [
    "projects.create",
    "projects.update",
    "projects.delete"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/configs/test_iam_permissions',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "permissions": [
    "projects.create",
    "projects.update",
    "projects.delete"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/configs/test_iam_permissions',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /streaming/v1/configs/test_iam_permissions

Body parameter

{
  "permissions": [
    "projects.create",
    "projects.update",
    "projects.delete"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
}

Parameters

Name In Type Required Description
body body mycujoo.streaming.v1.StreamingConfigTestIamPermissionsRequest true none

Example responses

200 Response

{
  "permissions": [
    "projects.create",
    "projects.update"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.streaming.v1.StreamingConfigTestIamPermissionsResponse
default Default An unexpected error response. google.rpc.Status

Returns a list of video representations (Presets)

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/streaming/v1/configs/video_representations', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/streaming/v1/configs/video_representations", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/streaming/v1/configs/video_representations HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/configs/video_representations',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/configs/video_representations',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /streaming/v1/configs/video_representations

List all the video representations available for use in stream configs.

Parameters

Name In Type Required Description
page_size query integer(int32) false A positive number that is the maximum number of results to return.
page_token query string false If this field is not empty then it must contain the next_page_token value
filter query string false Filter options

Detailed descriptions

page_token: If this field is not empty then it must contain the next_page_token value returned by a previous call to this method. Using this field causes the method to return additional results from the previous method call.

Example responses

200 Response

{
  "next_page_token": "string",
  "video_representations": [
    {
      "bitrate": 100,
      "framerate": 24,
      "height": 240,
      "id": "string",
      "is_enabled": true,
      "is_system": true,
      "name": "string",
      "width": 320
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.streaming.v1.ListVideoRepresentationsResponse
default Default An unexpected error response. google.rpc.Status

Creates a new video representation (preset)

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.post('https://mcls-api.mycujoo.tv/streaming/v1/configs/video_representations', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/streaming/v1/configs/video_representations", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/streaming/v1/configs/video_representations HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "bitrate": 100,
  "framerate": 24,
  "height": 240,
  "is_enabled": true,
  "name": "string",
  "width": 320
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/configs/video_representations',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "bitrate": 100,
  "framerate": 24,
  "height": 240,
  "is_enabled": true,
  "name": "string",
  "width": 320
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/configs/video_representations',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /streaming/v1/configs/video_representations

Creates a new video representation.

Body parameter

{
  "bitrate": 100,
  "framerate": 24,
  "height": 240,
  "is_enabled": true,
  "name": "string",
  "width": 320
}

Parameters

Name In Type Required Description
id query string false example: ck8u9fwwu1wtg0hewiqz3we6j
body body mycujoo.streaming.v1.VideoRepresentationUpdate true none

Example responses

200 Response

{
  "bitrate": 100,
  "framerate": 24,
  "height": 240,
  "id": "string",
  "is_enabled": true,
  "is_system": true,
  "name": "string",
  "width": 320
}

Responses

Status Meaning Description Schema
200 OK (empty) mycujoo.streaming.v1.VideoRepresentation
default Default An unexpected error response. google.rpc.Status

StreamService_VideoRepresentationTestIamPermissions

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.post('https://mcls-api.mycujoo.tv/streaming/v1/configs/video_representations/test_iam_permissions', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/streaming/v1/configs/video_representations/test_iam_permissions", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/streaming/v1/configs/video_representations/test_iam_permissions HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "permissions": [
    "projects.create",
    "projects.update",
    "projects.delete"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/configs/video_representations/test_iam_permissions',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "permissions": [
    "projects.create",
    "projects.update",
    "projects.delete"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/configs/video_representations/test_iam_permissions',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /streaming/v1/configs/video_representations/test_iam_permissions

Body parameter

{
  "permissions": [
    "projects.create",
    "projects.update",
    "projects.delete"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
}

Parameters

Name In Type Required Description
body body mycujoo.streaming.v1.VideoRepresentationTestIamPermissionsRequest true none

Example responses

200 Response

{
  "permissions": [
    "projects.create",
    "projects.update"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.streaming.v1.VideoRepresentationTestIamPermissionsResponse
default Default An unexpected error response. google.rpc.Status

Returns video representation's info

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/streaming/v1/configs/video_representations/{id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/streaming/v1/configs/video_representations/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/streaming/v1/configs/video_representations/{id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/configs/video_representations/{id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/configs/video_representations/{id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /streaming/v1/configs/video_representations/{id}

Returns the video representation

Parameters

Name In Type Required Description
id path string true example: ck8u9fwwu1wtg0hewiqz3we6j

Example responses

200 Response

{
  "bitrate": 100,
  "framerate": 24,
  "height": 240,
  "id": "string",
  "is_enabled": true,
  "is_system": true,
  "name": "string",
  "width": 320
}

Responses

Status Meaning Description Schema
200 OK (empty) mycujoo.streaming.v1.VideoRepresentation
default Default An unexpected error response. google.rpc.Status

Updates video representation

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.patch('https://mcls-api.mycujoo.tv/streaming/v1/pull_ingest/{id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "https://mcls-api.mycujoo.tv/streaming/v1/pull_ingest/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PATCH https://mcls-api.mycujoo.tv/streaming/v1/pull_ingest/{id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "endpoint": "string",
  "name": "string",
  "protocol": "PULL_INGEST_PROTOCOL_UNSPECIFIED"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/pull_ingest/{id}',
{
  method: 'PATCH',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "endpoint": "string",
  "name": "string",
  "protocol": "PULL_INGEST_PROTOCOL_UNSPECIFIED"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/pull_ingest/{id}',
{
  method: 'PATCH',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PATCH /streaming/v1/pull_ingest/{id}

Updates a pull ingest endpoint

Body parameter

{
  "endpoint": "string",
  "name": "string",
  "protocol": "PULL_INGEST_PROTOCOL_UNSPECIFIED"
}

Parameters

Name In Type Required Description
id path string true ID of the event
body body mycujoo.streaming.v1.PullIngestEndpointUpdateFields true Fields to update

Example responses

200 Response

{
  "endpoint": "string",
  "id": "string",
  "name": "string",
  "protocol": "PULL_INGEST_PROTOCOL_UNSPECIFIED",
  "streams": [
    {
      "status": "PULL_INGEST_STATUS_UNSPECIFIED",
      "stream_id": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK (empty) mycujoo.streaming.v1.PullIngestEndpoint
default Default An unexpected error response. google.rpc.Status

Removes a video representation

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.delete('https://mcls-api.mycujoo.tv/streaming/v1/configs/video_representations/{video_representation_id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "https://mcls-api.mycujoo.tv/streaming/v1/configs/video_representations/{video_representation_id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE https://mcls-api.mycujoo.tv/streaming/v1/configs/video_representations/{video_representation_id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/configs/video_representations/{video_representation_id}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/configs/video_representations/{video_representation_id}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

DELETE /streaming/v1/configs/video_representations/{video_representation_id}

Removes a single video representation resource.

Parameters

Name In Type Required Description
video_representation_id path string true none

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.streaming.v1.DeleteVideoRepresentationResponse
default Default An unexpected error response. google.rpc.Status

GetVideoRepresentationIamPolicy

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/streaming/v1/configs/video_representations/{video_representation_id}/iam_policy', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/streaming/v1/configs/video_representations/{video_representation_id}/iam_policy", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/streaming/v1/configs/video_representations/{video_representation_id}/iam_policy HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/configs/video_representations/{video_representation_id}/iam_policy',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/configs/video_representations/{video_representation_id}/iam_policy',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /streaming/v1/configs/video_representations/{video_representation_id}/iam_policy

Returns current IAM policy for the video representation. Use returned policy and etag to update policy.

Parameters

Name In Type Required Description
video_representation_id path string true none

Example responses

200 Response

{
  "etag": "string",
  "policy": {
    "bindings": [
      {
        "account_ids": [
          "2GzbST9DaEPsNcDTaW30GWnfZyw",
          "2GzbTHf7FfMyGv2F71FWwGRzKWb"
        ],
        "role_id": "owner"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "projects.admin"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "accounts.admin"
      }
    ]
  }
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.streaming.v1.GetVideoRepresentationIamPolicyResponse
default Default An unexpected error response. google.rpc.Status

SetVideoRepresentationIamPolicy

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.post('https://mcls-api.mycujoo.tv/streaming/v1/configs/video_representations/{video_representation_id}/iam_policy', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/streaming/v1/configs/video_representations/{video_representation_id}/iam_policy", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/streaming/v1/configs/video_representations/{video_representation_id}/iam_policy HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "etag": "string",
  "policy": {
    "bindings": [
      {
        "account_ids": [
          "2GzbST9DaEPsNcDTaW30GWnfZyw",
          "2GzbTHf7FfMyGv2F71FWwGRzKWb"
        ],
        "role_id": "owner"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "projects.admin"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "accounts.admin"
      }
    ]
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/configs/video_representations/{video_representation_id}/iam_policy',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "etag": "string",
  "policy": {
    "bindings": [
      {
        "account_ids": [
          "2GzbST9DaEPsNcDTaW30GWnfZyw",
          "2GzbTHf7FfMyGv2F71FWwGRzKWb"
        ],
        "role_id": "owner"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "projects.admin"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "accounts.admin"
      }
    ]
  }
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/configs/video_representations/{video_representation_id}/iam_policy',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /streaming/v1/configs/video_representations/{video_representation_id}/iam_policy

Set IAM policy for the video representation. This method replaces all existing policy bindings for the video representation. To prevent overwriting existing policy bindings that were written concurrently, use the etag field to perform a read-modify-write operation.

Body parameter

{
  "etag": "string",
  "policy": {
    "bindings": [
      {
        "account_ids": [
          "2GzbST9DaEPsNcDTaW30GWnfZyw",
          "2GzbTHf7FfMyGv2F71FWwGRzKWb"
        ],
        "role_id": "owner"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "projects.admin"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "accounts.admin"
      }
    ]
  }
}

Parameters

Name In Type Required Description
video_representation_id path string true none
body body object true none
ยป etag body string(byte) false none
ยป policy body mycujoo.auth.v1.Policy true Authorization policy.
ยปยป bindings body [mycujoo.auth.v1.Binding] false List of bindings to the policy. If empty, the policy will not have any effect.
ยปยปยป account_ids body [string] false List of account identifiers (referencing mycujoo.accounts.v1.Account) that have the role.
ยปยปยป include_all_organization_accounts body boolean false If this is set to true then the role is granted to all accounts in the organization. It overrides the account_ids field.
ยปยปยป role_id body string false none

Detailed descriptions

ยปยป bindings: List of bindings to the policy. If empty, the policy will not have any effect. Total number of accounts referenced in the bindings should be up to 1500. If same account has multiple roles - it is counted multiple times.

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.streaming.v1.SetVideoRepresentationIamPolicyResponse
default Default An unexpected error response. google.rpc.Status

Returns a single stream config

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/streaming/v1/configs/{config_id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/streaming/v1/configs/{config_id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/streaming/v1/configs/{config_id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/configs/{config_id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/configs/{config_id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /streaming/v1/configs/{config_id}

Returns a single StreamConfig resource.

Parameters

Name In Type Required Description
config_id path string true none

Example responses

200 Response

{
  "auto_enable_vpn_blocking": true,
  "default": true,
  "dvr_settings": {
    "automatic_vod": true,
    "enabled": true,
    "stop_transcoding_full_dvr": true,
    "window_size": 1
  },
  "enable_pull_endpoint": true,
  "enable_raw_pull_endpoint": true,
  "id": "string",
  "is_system": true,
  "name": "string",
  "recording_settings": {
    "autostart": true,
    "enabled": true,
    "record_during_transcoding": true
  },
  "scene_settings": {
    "is_enabled": true,
    "key_color": "SCENE_KEY_COLOR_UNSPECIFIED",
    "scene_id": "string"
  },
  "secure_link": true,
  "transcoding_settings": {
    "audio_bitrate": 32,
    "autostart": true,
    "drm": {
      "fairplay": true,
      "playready": true,
      "widevine": true
    },
    "enabled": true,
    "follow_source_fps": true,
    "gop": 25,
    "interlacing_filter_mode": "INTERLACING_FILTER_MODE_UNSPECIFIED",
    "key_frame_interval": 1,
    "level": 0.1,
    "llhls_settings": {
      "is_enabled": true,
      "part_size": 250,
      "segment_count": 10,
      "segment_size": 1
    },
    "low_latency": true,
    "profile": "TRANSCODING_PROFILE_UNSPECIFIED",
    "segment_size": 1,
    "tracking_pixel": true,
    "use_cdn": true,
    "video_representation_ids": [
      "string"
    ],
    "watermark": {
      "enabled": true,
      "url": "https://images.mls.mycujoo.tv/example.png"
    }
  }
}

Responses

Status Meaning Description Schema
200 OK (empty) mycujoo.streaming.v1.StreamConfig
default Default An unexpected error response. google.rpc.Status

Deletes a single stream configuration

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.delete('https://mcls-api.mycujoo.tv/streaming/v1/configs/{config_id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "https://mcls-api.mycujoo.tv/streaming/v1/configs/{config_id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE https://mcls-api.mycujoo.tv/streaming/v1/configs/{config_id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/configs/{config_id}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/configs/{config_id}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

DELETE /streaming/v1/configs/{config_id}

Deletes a single Stream configuration resource.

Parameters

Name In Type Required Description
config_id path string true The stream config ID
purge query boolean false If set to true all information related to this stream is deleted and will not be recoverable.

Detailed descriptions

purge: If set to true all information related to this stream is deleted and will not be recoverable. Resources deleted are: Recordings, VODs and all references to the stream. USE WITH CAUTION.

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.streaming.v1.DeleteConfigResponse
default Default An unexpected error response. google.rpc.Status

Patch a single stream config

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.patch('https://mcls-api.mycujoo.tv/streaming/v1/configs/{config_id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "https://mcls-api.mycujoo.tv/streaming/v1/configs/{config_id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PATCH https://mcls-api.mycujoo.tv/streaming/v1/configs/{config_id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "auto_enable_vpn_blocking": true,
  "default": true,
  "dvr_settings": {
    "automatic_vod": true,
    "enabled": true,
    "stop_transcoding_full_dvr": true,
    "window_size": 1
  },
  "enable_pull_endpoint": true,
  "enable_raw_pull_endpoint": true,
  "name": "string",
  "recording_settings": {
    "autostart": true,
    "enabled": true,
    "record_during_transcoding": true
  },
  "scene_settings": {
    "is_enabled": true,
    "key_color": "SCENE_KEY_COLOR_UNSPECIFIED",
    "scene_id": "string"
  },
  "secure_link": true,
  "transcoding_settings": {
    "audio_bitrate": 32,
    "autostart": true,
    "drm": {
      "fairplay": true,
      "playready": true,
      "widevine": true
    },
    "enabled": true,
    "follow_source_fps": true,
    "gop": 25,
    "interlacing_filter_mode": "INTERLACING_FILTER_MODE_UNSPECIFIED",
    "key_frame_interval": 1,
    "level": 0.1,
    "llhls_settings": {
      "is_enabled": true,
      "part_size": 250,
      "segment_count": 10,
      "segment_size": 1
    },
    "low_latency": true,
    "profile": "TRANSCODING_PROFILE_UNSPECIFIED",
    "segment_size": 1,
    "tracking_pixel": true,
    "use_cdn": true,
    "video_representation_ids": [
      "string"
    ],
    "watermark": {
      "enabled": true,
      "url": "https://images.mls.mycujoo.tv/example.png"
    }
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/configs/{config_id}',
{
  method: 'PATCH',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "auto_enable_vpn_blocking": true,
  "default": true,
  "dvr_settings": {
    "automatic_vod": true,
    "enabled": true,
    "stop_transcoding_full_dvr": true,
    "window_size": 1
  },
  "enable_pull_endpoint": true,
  "enable_raw_pull_endpoint": true,
  "name": "string",
  "recording_settings": {
    "autostart": true,
    "enabled": true,
    "record_during_transcoding": true
  },
  "scene_settings": {
    "is_enabled": true,
    "key_color": "SCENE_KEY_COLOR_UNSPECIFIED",
    "scene_id": "string"
  },
  "secure_link": true,
  "transcoding_settings": {
    "audio_bitrate": 32,
    "autostart": true,
    "drm": {
      "fairplay": true,
      "playready": true,
      "widevine": true
    },
    "enabled": true,
    "follow_source_fps": true,
    "gop": 25,
    "interlacing_filter_mode": "INTERLACING_FILTER_MODE_UNSPECIFIED",
    "key_frame_interval": 1,
    "level": 0.1,
    "llhls_settings": {
      "is_enabled": true,
      "part_size": 250,
      "segment_count": 10,
      "segment_size": 1
    },
    "low_latency": true,
    "profile": "TRANSCODING_PROFILE_UNSPECIFIED",
    "segment_size": 1,
    "tracking_pixel": true,
    "use_cdn": true,
    "video_representation_ids": [
      "string"
    ],
    "watermark": {
      "enabled": true,
      "url": "https://images.mls.mycujoo.tv/example.png"
    }
  }
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/configs/{config_id}',
{
  method: 'PATCH',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PATCH /streaming/v1/configs/{config_id}

Patches a single StreamConfig resource.

Body parameter

{
  "auto_enable_vpn_blocking": true,
  "default": true,
  "dvr_settings": {
    "automatic_vod": true,
    "enabled": true,
    "stop_transcoding_full_dvr": true,
    "window_size": 1
  },
  "enable_pull_endpoint": true,
  "enable_raw_pull_endpoint": true,
  "name": "string",
  "recording_settings": {
    "autostart": true,
    "enabled": true,
    "record_during_transcoding": true
  },
  "scene_settings": {
    "is_enabled": true,
    "key_color": "SCENE_KEY_COLOR_UNSPECIFIED",
    "scene_id": "string"
  },
  "secure_link": true,
  "transcoding_settings": {
    "audio_bitrate": 32,
    "autostart": true,
    "drm": {
      "fairplay": true,
      "playready": true,
      "widevine": true
    },
    "enabled": true,
    "follow_source_fps": true,
    "gop": 25,
    "interlacing_filter_mode": "INTERLACING_FILTER_MODE_UNSPECIFIED",
    "key_frame_interval": 1,
    "level": 0.1,
    "llhls_settings": {
      "is_enabled": true,
      "part_size": 250,
      "segment_count": 10,
      "segment_size": 1
    },
    "low_latency": true,
    "profile": "TRANSCODING_PROFILE_UNSPECIFIED",
    "segment_size": 1,
    "tracking_pixel": true,
    "use_cdn": true,
    "video_representation_ids": [
      "string"
    ],
    "watermark": {
      "enabled": true,
      "url": "https://images.mls.mycujoo.tv/example.png"
    }
  }
}

Parameters

Name In Type Required Description
config_id path string true none
body body mycujoo.streaming.v1.StreamConfigUpdate true none

Example responses

200 Response

{
  "auto_enable_vpn_blocking": true,
  "default": true,
  "dvr_settings": {
    "automatic_vod": true,
    "enabled": true,
    "stop_transcoding_full_dvr": true,
    "window_size": 1
  },
  "enable_pull_endpoint": true,
  "enable_raw_pull_endpoint": true,
  "id": "string",
  "is_system": true,
  "name": "string",
  "recording_settings": {
    "autostart": true,
    "enabled": true,
    "record_during_transcoding": true
  },
  "scene_settings": {
    "is_enabled": true,
    "key_color": "SCENE_KEY_COLOR_UNSPECIFIED",
    "scene_id": "string"
  },
  "secure_link": true,
  "transcoding_settings": {
    "audio_bitrate": 32,
    "autostart": true,
    "drm": {
      "fairplay": true,
      "playready": true,
      "widevine": true
    },
    "enabled": true,
    "follow_source_fps": true,
    "gop": 25,
    "interlacing_filter_mode": "INTERLACING_FILTER_MODE_UNSPECIFIED",
    "key_frame_interval": 1,
    "level": 0.1,
    "llhls_settings": {
      "is_enabled": true,
      "part_size": 250,
      "segment_count": 10,
      "segment_size": 1
    },
    "low_latency": true,
    "profile": "TRANSCODING_PROFILE_UNSPECIFIED",
    "segment_size": 1,
    "tracking_pixel": true,
    "use_cdn": true,
    "video_representation_ids": [
      "string"
    ],
    "watermark": {
      "enabled": true,
      "url": "https://images.mls.mycujoo.tv/example.png"
    }
  }
}

Responses

Status Meaning Description Schema
200 OK (empty) mycujoo.streaming.v1.StreamConfig
default Default An unexpected error response. google.rpc.Status

GetConfigIamPolicy

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/streaming/v1/configs/{config_id}/iam_policy', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/streaming/v1/configs/{config_id}/iam_policy", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/streaming/v1/configs/{config_id}/iam_policy HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/configs/{config_id}/iam_policy',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/configs/{config_id}/iam_policy',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /streaming/v1/configs/{config_id}/iam_policy

Returns current IAM policy for the streaming config. Use returned policy and etag to update policy.

Parameters

Name In Type Required Description
config_id path string true none

Example responses

200 Response

{
  "etag": "string",
  "policy": {
    "bindings": [
      {
        "account_ids": [
          "2GzbST9DaEPsNcDTaW30GWnfZyw",
          "2GzbTHf7FfMyGv2F71FWwGRzKWb"
        ],
        "role_id": "owner"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "projects.admin"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "accounts.admin"
      }
    ]
  },
  "resource_hierarchy": [
    {
      "id": "elevendata",
      "type": "project"
    }
  ],
  "resource_title": "string"
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.streaming.v1.GetConfigIamPolicyResponse
default Default An unexpected error response. google.rpc.Status

SetConfigIamPolicy

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.post('https://mcls-api.mycujoo.tv/streaming/v1/configs/{config_id}/iam_policy', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/streaming/v1/configs/{config_id}/iam_policy", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/streaming/v1/configs/{config_id}/iam_policy HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "etag": "string",
  "policy": {
    "bindings": [
      {
        "account_ids": [
          "2GzbST9DaEPsNcDTaW30GWnfZyw",
          "2GzbTHf7FfMyGv2F71FWwGRzKWb"
        ],
        "role_id": "owner"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "projects.admin"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "accounts.admin"
      }
    ]
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/configs/{config_id}/iam_policy',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "etag": "string",
  "policy": {
    "bindings": [
      {
        "account_ids": [
          "2GzbST9DaEPsNcDTaW30GWnfZyw",
          "2GzbTHf7FfMyGv2F71FWwGRzKWb"
        ],
        "role_id": "owner"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "projects.admin"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "accounts.admin"
      }
    ]
  }
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/configs/{config_id}/iam_policy',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /streaming/v1/configs/{config_id}/iam_policy

Set IAM policy for the streaming config. This method replaces all existing policy bindings for the streaming config. To prevent overwriting existing policy bindings that were written concurrently, use the etag field to perform a read-modify-write operation.

Body parameter

{
  "etag": "string",
  "policy": {
    "bindings": [
      {
        "account_ids": [
          "2GzbST9DaEPsNcDTaW30GWnfZyw",
          "2GzbTHf7FfMyGv2F71FWwGRzKWb"
        ],
        "role_id": "owner"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "projects.admin"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "accounts.admin"
      }
    ]
  }
}

Parameters

Name In Type Required Description
config_id path string true none
body body object true none
ยป etag body string(byte) false none
ยป policy body mycujoo.auth.v1.Policy true Authorization policy.
ยปยป bindings body [mycujoo.auth.v1.Binding] false List of bindings to the policy. If empty, the policy will not have any effect.
ยปยปยป account_ids body [string] false List of account identifiers (referencing mycujoo.accounts.v1.Account) that have the role.
ยปยปยป include_all_organization_accounts body boolean false If this is set to true then the role is granted to all accounts in the organization. It overrides the account_ids field.
ยปยปยป role_id body string false none

Detailed descriptions

ยปยป bindings: List of bindings to the policy. If empty, the policy will not have any effect. Total number of accounts referenced in the bindings should be up to 1500. If same account has multiple roles - it is counted multiple times.

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.streaming.v1.SetConfigIamPolicyResponse
default Default An unexpected error response. google.rpc.Status

Patch a single pull endpoint

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.patch('https://mcls-api.mycujoo.tv/streaming/v1/endpoints/pull/{id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "https://mcls-api.mycujoo.tv/streaming/v1/endpoints/pull/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PATCH https://mcls-api.mycujoo.tv/streaming/v1/endpoints/pull/{id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "config_id": "string",
  "scene_settings": {
    "is_enabled": true,
    "key_color": "SCENE_KEY_COLOR_UNSPECIFIED",
    "scene_id": "string",
    "variables": {
      "property1": "string",
      "property2": "string"
    }
  },
  "video_representation_id": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/endpoints/pull/{id}',
{
  method: 'PATCH',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "config_id": "string",
  "scene_settings": {
    "is_enabled": true,
    "key_color": "SCENE_KEY_COLOR_UNSPECIFIED",
    "scene_id": "string",
    "variables": {
      "property1": "string",
      "property2": "string"
    }
  },
  "video_representation_id": "string"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/endpoints/pull/{id}',
{
  method: 'PATCH',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PATCH /streaming/v1/endpoints/pull/{id}

Patches a single pull endpoint.

Body parameter

{
  "config_id": "string",
  "scene_settings": {
    "is_enabled": true,
    "key_color": "SCENE_KEY_COLOR_UNSPECIFIED",
    "scene_id": "string",
    "variables": {
      "property1": "string",
      "property2": "string"
    }
  },
  "video_representation_id": "string"
}

Parameters

Name In Type Required Description
id path string true ID of the pull endpoint
body body mycujoo.streaming.v1.PullEndpointUpdate true Update

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.streaming.v1.UpdatePullEndpointResponse
default Default An unexpected error response. google.rpc.Status

Creates a push endpoint for the stream

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.post('https://mcls-api.mycujoo.tv/streaming/v1/endpoints/push', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/streaming/v1/endpoints/push", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/streaming/v1/endpoints/push HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "config_id": "qurnvkspnrjqk",
  "endpoint": "rtmp://something/live",
  "protocol": "RTMP",
  "stream_id": "abcdefghi"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/endpoints/push',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "config_id": "qurnvkspnrjqk",
  "endpoint": "rtmp://something/live",
  "protocol": "RTMP",
  "stream_id": "abcdefghi"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/endpoints/push',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /streaming/v1/endpoints/push

Creates a push endpoint for the stream

Body parameter

{
  "config_id": "qurnvkspnrjqk",
  "endpoint": "rtmp://something/live",
  "protocol": "RTMP",
  "stream_id": "abcdefghi"
}

Parameters

Name In Type Required Description
body body mycujoo.streaming.v1.CreatePushEndpointRequest true none

Example responses

200 Response

{
  "config_id": "qurnvkspnrjqk",
  "endpoint": "rtmp://something/live",
  "protocol": "RTMP",
  "stream_id": "abcdefghi"
}

Responses

Status Meaning Description Schema
200 OK (empty) mycujoo.streaming.v1.StreamPushEndpoint
default Default An unexpected error response. google.rpc.Status

Updates a push endpoint

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.patch('https://mcls-api.mycujoo.tv/streaming/v1/endpoints/push', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "https://mcls-api.mycujoo.tv/streaming/v1/endpoints/push", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PATCH https://mcls-api.mycujoo.tv/streaming/v1/endpoints/push HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "config_id": "qurnvkspnrjqk",
  "endpoint": "rtmp://something/live",
  "protocol": "RTMP",
  "stream_id": "abcdefghi"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/endpoints/push',
{
  method: 'PATCH',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "config_id": "qurnvkspnrjqk",
  "endpoint": "rtmp://something/live",
  "protocol": "RTMP",
  "stream_id": "abcdefghi"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/endpoints/push',
{
  method: 'PATCH',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PATCH /streaming/v1/endpoints/push

Updates a push endpoint

Body parameter

{
  "config_id": "qurnvkspnrjqk",
  "endpoint": "rtmp://something/live",
  "protocol": "RTMP",
  "stream_id": "abcdefghi"
}

Parameters

Name In Type Required Description
body body mycujoo.streaming.v1.StreamPushEndpoint true Stream push endpoint information to replace existing information.

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.streaming.v1.UpdatePushEndpointResponse
default Default An unexpected error response. google.rpc.Status

Delete the push endpoint

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.delete('https://mcls-api.mycujoo.tv/streaming/v1/endpoints/push/{id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "https://mcls-api.mycujoo.tv/streaming/v1/endpoints/push/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE https://mcls-api.mycujoo.tv/streaming/v1/endpoints/push/{id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/endpoints/push/{id}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/endpoints/push/{id}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

DELETE /streaming/v1/endpoints/push/{id}

Delete the push endpoint

Parameters

Name In Type Required Description
id path string true none

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.streaming.v1.DeletePushEndpointResponse
default Default An unexpected error response. google.rpc.Status

Re-creates the push endpoint job

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.post('https://mcls-api.mycujoo.tv/streaming/v1/endpoints/push/{id}/restart', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/streaming/v1/endpoints/push/{id}/restart", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/streaming/v1/endpoints/push/{id}/restart HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/endpoints/push/{id}/restart',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/endpoints/push/{id}/restart',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /streaming/v1/endpoints/push/{id}/restart

Re-creates the push endpoint job

Parameters

Name In Type Required Description
id path string true none

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.streaming.v1.RestartPushEndpointResponse
default Default An unexpected error response. google.rpc.Status

Creates the push endpoint job

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.post('https://mcls-api.mycujoo.tv/streaming/v1/endpoints/push/{id}/start', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/streaming/v1/endpoints/push/{id}/start", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/streaming/v1/endpoints/push/{id}/start HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/endpoints/push/{id}/start',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/endpoints/push/{id}/start',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /streaming/v1/endpoints/push/{id}/start

Creates a push endpoint job

Parameters

Name In Type Required Description
id path string true none

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.streaming.v1.StartPushEndpointResponse
default Default An unexpected error response. google.rpc.Status

Stops the push endpoint job

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.post('https://mcls-api.mycujoo.tv/streaming/v1/endpoints/push/{id}/stop', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/streaming/v1/endpoints/push/{id}/stop", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/streaming/v1/endpoints/push/{id}/stop HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/endpoints/push/{id}/stop',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/endpoints/push/{id}/stop',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /streaming/v1/endpoints/push/{id}/stop

Stops the push endpoint job

Parameters

Name In Type Required Description
id path string true none

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.streaming.v1.StopPushEndpointResponse
default Default An unexpected error response. google.rpc.Status

Returns a list of pull ingests

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/streaming/v1/pull_ingest', params={
  'page_size': '0'
}, headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/streaming/v1/pull_ingest", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/streaming/v1/pull_ingest?page_size=0 HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/pull_ingest?page_size=0',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/pull_ingest?page_size=0',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /streaming/v1/pull_ingest

List all pull ingest endpoints that connected to your account.

Parameters

Name In Type Required Description
page_size query integer(int32) true Maximum number of records to return
page_token query string false The pagination token in the List request.

Example responses

200 Response

{
  "next_page_token": "string",
  "previous_page_token": "string",
  "pull_ingest_endpoints": [
    {
      "endpoint": "string",
      "id": "string",
      "name": "string",
      "protocol": "PULL_INGEST_PROTOCOL_UNSPECIFIED",
      "streams": [
        {
          "status": "PULL_INGEST_STATUS_UNSPECIFIED",
          "stream_id": "string"
        }
      ]
    }
  ],
  "total_size": 0
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.streaming.v1.ListPullIngestResponse
default Default An unexpected error response. google.rpc.Status

Creates a pull ingest endpoint

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.post('https://mcls-api.mycujoo.tv/streaming/v1/pull_ingest', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/streaming/v1/pull_ingest", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/streaming/v1/pull_ingest HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "endpoint": "string",
  "name": "string",
  "protocol": "PULL_INGEST_PROTOCOL_UNSPECIFIED"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/pull_ingest',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "endpoint": "string",
  "name": "string",
  "protocol": "PULL_INGEST_PROTOCOL_UNSPECIFIED"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/pull_ingest',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /streaming/v1/pull_ingest

Creates a pull ingest endpoint

Body parameter

{
  "endpoint": "string",
  "name": "string",
  "protocol": "PULL_INGEST_PROTOCOL_UNSPECIFIED"
}

Parameters

Name In Type Required Description
body body mycujoo.streaming.v1.CreatePullIngestRequest true none

Example responses

200 Response

{
  "endpoint": "string",
  "id": "string",
  "name": "string",
  "protocol": "PULL_INGEST_PROTOCOL_UNSPECIFIED",
  "streams": [
    {
      "status": "PULL_INGEST_STATUS_UNSPECIFIED",
      "stream_id": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK (empty) mycujoo.streaming.v1.PullIngestEndpoint
default Default An unexpected error response. google.rpc.Status

StreamService_PullIngestTestIamPermissions

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.post('https://mcls-api.mycujoo.tv/streaming/v1/pull_ingest/test_iam_permissions', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/streaming/v1/pull_ingest/test_iam_permissions", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/streaming/v1/pull_ingest/test_iam_permissions HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "permissions": [
    "projects.create",
    "projects.update",
    "projects.delete"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/pull_ingest/test_iam_permissions',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "permissions": [
    "projects.create",
    "projects.update",
    "projects.delete"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/pull_ingest/test_iam_permissions',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /streaming/v1/pull_ingest/test_iam_permissions

Body parameter

{
  "permissions": [
    "projects.create",
    "projects.update",
    "projects.delete"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
}

Parameters

Name In Type Required Description
body body mycujoo.streaming.v1.PullIngestTestIamPermissionsRequest true none

Example responses

200 Response

{
  "permissions": [
    "projects.create",
    "projects.update"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.streaming.v1.PullIngestTestIamPermissionsResponse
default Default An unexpected error response. google.rpc.Status

Returns pull ingest info

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/streaming/v1/pull_ingest/{id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/streaming/v1/pull_ingest/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/streaming/v1/pull_ingest/{id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/pull_ingest/{id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/pull_ingest/{id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /streaming/v1/pull_ingest/{id}

Returns pull ingest info

Parameters

Name In Type Required Description
id path string true none

Example responses

200 Response

{
  "pull_ingest": {
    "endpoint": "string",
    "id": "string",
    "name": "string",
    "protocol": "PULL_INGEST_PROTOCOL_UNSPECIFIED",
    "streams": [
      {
        "status": "PULL_INGEST_STATUS_UNSPECIFIED",
        "stream_id": "string"
      }
    ]
  }
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.streaming.v1.GetPullIngestResponse
default Default An unexpected error response. google.rpc.Status

Deletes pull ingest endpoint

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.delete('https://mcls-api.mycujoo.tv/streaming/v1/pull_ingest/{id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "https://mcls-api.mycujoo.tv/streaming/v1/pull_ingest/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE https://mcls-api.mycujoo.tv/streaming/v1/pull_ingest/{id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/pull_ingest/{id}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/pull_ingest/{id}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

DELETE /streaming/v1/pull_ingest/{id}

Deletes pull ingest endpoint

Parameters

Name In Type Required Description
id path string true none

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.streaming.v1.DeletePullIngestResponse
default Default An unexpected error response. google.rpc.Status

Retrieves stream's pull ingest current status

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/streaming/v1/pull_ingest/{id}/streams/{stream_id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/streaming/v1/pull_ingest/{id}/streams/{stream_id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/streaming/v1/pull_ingest/{id}/streams/{stream_id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/pull_ingest/{id}/streams/{stream_id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/pull_ingest/{id}/streams/{stream_id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /streaming/v1/pull_ingest/{id}/streams/{stream_id}

Retrieves stream's pull ingest current status

Parameters

Name In Type Required Description
id path string true none
stream_id path string true none

Example responses

200 Response

{
  "stream_pull_ingest": {
    "endpoint": "string",
    "id": "string",
    "name": "string",
    "protocol": "PULL_INGEST_PROTOCOL_UNSPECIFIED",
    "status": "PULL_INGEST_STATUS_UNSPECIFIED",
    "stream_id": "string"
  }
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.streaming.v1.GetStreamPullIngestResponse
default Default An unexpected error response. google.rpc.Status

Restarts pulling ingest

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.post('https://mcls-api.mycujoo.tv/streaming/v1/pull_ingest/{id}/streams/{stream_id}/restart', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/streaming/v1/pull_ingest/{id}/streams/{stream_id}/restart", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/streaming/v1/pull_ingest/{id}/streams/{stream_id}/restart HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/pull_ingest/{id}/streams/{stream_id}/restart',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/pull_ingest/{id}/streams/{stream_id}/restart',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /streaming/v1/pull_ingest/{id}/streams/{stream_id}/restart

Restarts pulling ingest

Parameters

Name In Type Required Description
id path string true none
stream_id path string true none

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.streaming.v1.RestartStreamPullIngestResponse
default Default An unexpected error response. google.rpc.Status

Starts pulling from the endpoint and send that to the target stream

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.post('https://mcls-api.mycujoo.tv/streaming/v1/pull_ingest/{id}/streams/{stream_id}/start', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/streaming/v1/pull_ingest/{id}/streams/{stream_id}/start", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/streaming/v1/pull_ingest/{id}/streams/{stream_id}/start HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/pull_ingest/{id}/streams/{stream_id}/start',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/pull_ingest/{id}/streams/{stream_id}/start',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /streaming/v1/pull_ingest/{id}/streams/{stream_id}/start

Starts pulling from the endpoint and send that to the target stream

Parameters

Name In Type Required Description
id path string true none
stream_id path string true none

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.streaming.v1.StartStreamPullIngestResponse
default Default An unexpected error response. google.rpc.Status

Stops pulling ingest

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.post('https://mcls-api.mycujoo.tv/streaming/v1/pull_ingest/{id}/streams/{stream_id}/stop', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/streaming/v1/pull_ingest/{id}/streams/{stream_id}/stop", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/streaming/v1/pull_ingest/{id}/streams/{stream_id}/stop HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/pull_ingest/{id}/streams/{stream_id}/stop',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/pull_ingest/{id}/streams/{stream_id}/stop',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /streaming/v1/pull_ingest/{id}/streams/{stream_id}/stop

Stops pulling ingest

Parameters

Name In Type Required Description
id path string true none
stream_id path string true none

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.streaming.v1.StopStreamPullIngestResponse
default Default An unexpected error response. google.rpc.Status

GetPullIngestIamPolicy

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/streaming/v1/pull_ingest/{pull_ingest_id}/iam_policy', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/streaming/v1/pull_ingest/{pull_ingest_id}/iam_policy", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/streaming/v1/pull_ingest/{pull_ingest_id}/iam_policy HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/pull_ingest/{pull_ingest_id}/iam_policy',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/pull_ingest/{pull_ingest_id}/iam_policy',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /streaming/v1/pull_ingest/{pull_ingest_id}/iam_policy

Returns current IAM policy for the pull ingest. Use returned policy and etag to update policy.

Parameters

Name In Type Required Description
pull_ingest_id path string true none

Example responses

200 Response

{
  "etag": "string",
  "policy": {
    "bindings": [
      {
        "account_ids": [
          "2GzbST9DaEPsNcDTaW30GWnfZyw",
          "2GzbTHf7FfMyGv2F71FWwGRzKWb"
        ],
        "role_id": "owner"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "projects.admin"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "accounts.admin"
      }
    ]
  }
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.streaming.v1.GetPullIngestIamPolicyResponse
default Default An unexpected error response. google.rpc.Status

SetPullIngestIamPolicy

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.post('https://mcls-api.mycujoo.tv/streaming/v1/pull_ingest/{pull_ingest_id}/iam_policy', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/streaming/v1/pull_ingest/{pull_ingest_id}/iam_policy", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/streaming/v1/pull_ingest/{pull_ingest_id}/iam_policy HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "etag": "string",
  "policy": {
    "bindings": [
      {
        "account_ids": [
          "2GzbST9DaEPsNcDTaW30GWnfZyw",
          "2GzbTHf7FfMyGv2F71FWwGRzKWb"
        ],
        "role_id": "owner"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "projects.admin"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "accounts.admin"
      }
    ]
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/pull_ingest/{pull_ingest_id}/iam_policy',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "etag": "string",
  "policy": {
    "bindings": [
      {
        "account_ids": [
          "2GzbST9DaEPsNcDTaW30GWnfZyw",
          "2GzbTHf7FfMyGv2F71FWwGRzKWb"
        ],
        "role_id": "owner"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "projects.admin"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "accounts.admin"
      }
    ]
  }
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/pull_ingest/{pull_ingest_id}/iam_policy',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /streaming/v1/pull_ingest/{pull_ingest_id}/iam_policy

Set IAM policy for the pull ingest. This method replaces all existing policy bindings for the pull ingest. To prevent overwriting existing policy bindings that were written concurrently, use the etag field to perform a read-modify-write operation.

Body parameter

{
  "etag": "string",
  "policy": {
    "bindings": [
      {
        "account_ids": [
          "2GzbST9DaEPsNcDTaW30GWnfZyw",
          "2GzbTHf7FfMyGv2F71FWwGRzKWb"
        ],
        "role_id": "owner"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "projects.admin"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "accounts.admin"
      }
    ]
  }
}

Parameters

Name In Type Required Description
pull_ingest_id path string true none
body body object true none
ยป etag body string(byte) false none
ยป policy body mycujoo.auth.v1.Policy true Authorization policy.
ยปยป bindings body [mycujoo.auth.v1.Binding] false List of bindings to the policy. If empty, the policy will not have any effect.
ยปยปยป account_ids body [string] false List of account identifiers (referencing mycujoo.accounts.v1.Account) that have the role.
ยปยปยป include_all_organization_accounts body boolean false If this is set to true then the role is granted to all accounts in the organization. It overrides the account_ids field.
ยปยปยป role_id body string false none

Detailed descriptions

ยปยป bindings: List of bindings to the policy. If empty, the policy will not have any effect. Total number of accounts referenced in the bindings should be up to 1500. If same account has multiple roles - it is counted multiple times.

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.streaming.v1.SetPullIngestIamPolicyResponse
default Default An unexpected error response. google.rpc.Status

Fetches the (organization level) secure key

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/streaming/v1/secure_key', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/streaming/v1/secure_key", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/streaming/v1/secure_key HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/secure_key',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/secure_key',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /streaming/v1/secure_key

Fetches the secure key

Example responses

200 Response

{
  "secure_key": {
    "key": "string",
    "version": "string"
  }
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.streaming.v1.GetSecureKeyResponse
default Default An unexpected error response. google.rpc.Status

Generates a new secure key

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.post('https://mcls-api.mycujoo.tv/streaming/v1/secure_key', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/streaming/v1/secure_key", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/streaming/v1/secure_key HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "version": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/secure_key',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "version": "string"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/secure_key',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /streaming/v1/secure_key

Generates a new secure key

Body parameter

{
  "version": "string"
}

Parameters

Name In Type Required Description
body body mycujoo.streaming.v1.SecureKeyUpdate true none

Example responses

200 Response

{
  "key": "string",
  "version": "string"
}

Responses

Status Meaning Description Schema
200 OK (empty) mycujoo.streaming.v1.SecureKey
default Default An unexpected error response. google.rpc.Status

Returns a list of streams

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/streaming/v1/streams', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/streaming/v1/streams", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/streaming/v1/streams HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/streams',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/streams',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /streaming/v1/streams

List all the streams connected to your account.

Parameters

Name In Type Required Description
filter query string false Filters the list of the result
page_size query integer(int32) false A positive number that is the maximum number of results to return.
page_token query string false If this field is not empty then it must contain the next_page_token value

Detailed descriptions

filter: Filters the list of the result Valid filters are region, active, is_enabled, stream_key, project_id

page_token: If this field is not empty then it must contain the next_page_token value returned by a previous call to this method. Using this field causes the method to return additional results from the previous method call.

Example responses

200 Response

{
  "next_page_token": "string",
  "streams": [
    {
      "config": {
        "auto_enable_vpn_blocking": true,
        "default": true,
        "dvr_settings": {
          "automatic_vod": true,
          "enabled": true,
          "stop_transcoding_full_dvr": true,
          "window_size": 1
        },
        "enable_pull_endpoint": true,
        "enable_raw_pull_endpoint": true,
        "id": "string",
        "is_system": true,
        "name": "string",
        "recording_settings": {
          "autostart": true,
          "enabled": true,
          "record_during_transcoding": true
        },
        "scene_settings": {
          "is_enabled": true,
          "key_color": "SCENE_KEY_COLOR_UNSPECIFIED",
          "scene_id": "string"
        },
        "secure_link": true,
        "transcoding_settings": {
          "audio_bitrate": 32,
          "autostart": true,
          "drm": {
            "fairplay": true,
            "playready": true,
            "widevine": true
          },
          "enabled": true,
          "follow_source_fps": true,
          "gop": 25,
          "interlacing_filter_mode": "INTERLACING_FILTER_MODE_UNSPECIFIED",
          "key_frame_interval": 1,
          "level": 0.1,
          "llhls_settings": {
            "is_enabled": true,
            "part_size": 250,
            "segment_count": 10,
            "segment_size": 1
          },
          "low_latency": true,
          "profile": "TRANSCODING_PROFILE_UNSPECIFIED",
          "segment_size": 1,
          "tracking_pixel": true,
          "use_cdn": true,
          "video_representation_ids": [
            "string"
          ],
          "watermark": {
            "enabled": true,
            "url": "https://images.mls.mycujoo.tv/example.png"
          }
        }
      },
      "config_id": "string",
      "connection_time_seconds": 0,
      "endpoint": "string",
      "external_video_source": "string",
      "id": "string",
      "incoming_feed": {
        "device": {
          "flash_version": "string",
          "name": "string"
        },
        "http_flv_endpoint": "string",
        "is_active": true,
        "protocol": "INGEST_PROTOCOL_UNSPECIFIED",
        "session_id": "string"
      },
      "incoming_feed_flv": "string",
      "is_active": true,
      "is_enabled": true,
      "is_public": true,
      "is_published": true,
      "key": "string",
      "media_source_id": "string",
      "playlists": [
        {
          "id": "string",
          "is_enabled": true,
          "is_transcoded": true,
          "is_updating": true,
          "is_vod": true,
          "protocol": "PROTOCOL_UNSPECIFIED",
          "type": "TYPE_UNSPECIFIED",
          "url": "string"
        }
      ],
      "project_id": "string",
      "pull_endpoints": [
        {
          "config_id": "string",
          "endpoint": "string",
          "id": "string",
          "is_transcoded": true,
          "protocol": "PROTOCOL_UNSPECIFIED",
          "scene_settings": {
            "is_enabled": true,
            "key_color": "SCENE_KEY_COLOR_UNSPECIFIED",
            "scene_id": "string",
            "variables": {
              "property1": "string",
              "property2": "string"
            }
          },
          "video_representation_id": "string"
        }
      ],
      "pull_ingest_id": "string",
      "push_endpoints": [
        {
          "config_id": "qurnvkspnrjqk",
          "endpoint": "rtmp://something/live",
          "protocol": "RTMP",
          "stream_id": "abcdefghi"
        }
      ],
      "push_ingest_endpoints": [
        {
          "endpoint": "string",
          "in_use": true,
          "protocol": "PUSH_INGEST_PROTOCOL_UNSPECIFIED",
          "region": "REGION_UNSPECIFIED",
          "secure_endpoint": "string",
          "secure_uri": "string",
          "support_tls": true,
          "uri": "string"
        }
      ],
      "region": "REGION_UNSPECIFIED",
      "stats": {
        "audio_bit_rate": 0,
        "audios": [
          {
            "bit_rate": 0,
            "channel_layout": "string",
            "channels": 0,
            "codec": "string",
            "codec_long_name": "string",
            "codec_type": "string",
            "index": 0,
            "profile": "string",
            "sample_fmt": "string",
            "sample_rate": 0
          }
        ],
        "connection_count": 0,
        "sample": {
          "audio_bit_rate": 0,
          "video_bit_rate": 0,
          "video_frame_rate": 0.1,
          "video_key_frame_consistent": true,
          "video_key_frame_interval": 0.1,
          "video_resolution": 0
        },
        "video_bit_rate": 0,
        "video_frame_rate": 0.1,
        "video_key_frame_consistent": true,
        "video_key_frame_interval": 0.1,
        "video_resolution": 0,
        "videos": [
          {
            "bit_rate": 0,
            "codec": "string",
            "codec_long_name": "string",
            "codec_type": "string",
            "frame_rate": 0.1,
            "height": 0,
            "index": 0,
            "level": 0,
            "pix_fmt": "string",
            "profile": "string",
            "resolution": 0,
            "start_pts": 0,
            "width": 0
          }
        ]
      },
      "title": "string",
      "transcoding_state": "STATE_UNSPECIFIED",
      "transcoding_time_seconds": 0,
      "type": "TYPE_UNSPECIFIED",
      "upload_id": "string",
      "vod_asset_id": "string"
    }
  ],
  "total_size": 0
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.streaming.v1.ListStreamsResponse
default Default An unexpected error response. google.rpc.Status

Creates a new stream

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.post('https://mcls-api.mycujoo.tv/streaming/v1/streams', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/streaming/v1/streams", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/streaming/v1/streams HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "config_id": "string",
  "external_video_source": "string",
  "is_enabled": true,
  "is_public": true,
  "is_published": true,
  "media_source_id": "string",
  "project_id": "string",
  "pull_config": {
    "config_id": "string",
    "video_representation_id": "string"
  },
  "pull_ingest_id": "string",
  "push_endpoints": [
    {
      "config_id": "qurnvkspnrjqk",
      "endpoint": "rtmp://something/live",
      "protocol": "RTMP",
      "stream_id": "abcdefghi"
    }
  ],
  "region": "REGION_UNSPECIFIED",
  "title": "string",
  "type": "TYPE_UNSPECIFIED",
  "upload_id": "string",
  "vod_asset_id": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/streams',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "config_id": "string",
  "external_video_source": "string",
  "is_enabled": true,
  "is_public": true,
  "is_published": true,
  "media_source_id": "string",
  "project_id": "string",
  "pull_config": {
    "config_id": "string",
    "video_representation_id": "string"
  },
  "pull_ingest_id": "string",
  "push_endpoints": [
    {
      "config_id": "qurnvkspnrjqk",
      "endpoint": "rtmp://something/live",
      "protocol": "RTMP",
      "stream_id": "abcdefghi"
    }
  ],
  "region": "REGION_UNSPECIFIED",
  "title": "string",
  "type": "TYPE_UNSPECIFIED",
  "upload_id": "string",
  "vod_asset_id": "string"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/streams',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /streaming/v1/streams

Creates a new stream.

Body parameter

{
  "config_id": "string",
  "external_video_source": "string",
  "is_enabled": true,
  "is_public": true,
  "is_published": true,
  "media_source_id": "string",
  "project_id": "string",
  "pull_config": {
    "config_id": "string",
    "video_representation_id": "string"
  },
  "pull_ingest_id": "string",
  "push_endpoints": [
    {
      "config_id": "qurnvkspnrjqk",
      "endpoint": "rtmp://something/live",
      "protocol": "RTMP",
      "stream_id": "abcdefghi"
    }
  ],
  "region": "REGION_UNSPECIFIED",
  "title": "string",
  "type": "TYPE_UNSPECIFIED",
  "upload_id": "string",
  "vod_asset_id": "string"
}

Parameters

Name In Type Required Description
body body mycujoo.streaming.v1.StreamUpdate true none

Example responses

200 Response

{
  "config": {
    "auto_enable_vpn_blocking": true,
    "default": true,
    "dvr_settings": {
      "automatic_vod": true,
      "enabled": true,
      "stop_transcoding_full_dvr": true,
      "window_size": 1
    },
    "enable_pull_endpoint": true,
    "enable_raw_pull_endpoint": true,
    "id": "string",
    "is_system": true,
    "name": "string",
    "recording_settings": {
      "autostart": true,
      "enabled": true,
      "record_during_transcoding": true
    },
    "scene_settings": {
      "is_enabled": true,
      "key_color": "SCENE_KEY_COLOR_UNSPECIFIED",
      "scene_id": "string"
    },
    "secure_link": true,
    "transcoding_settings": {
      "audio_bitrate": 32,
      "autostart": true,
      "drm": {
        "fairplay": true,
        "playready": true,
        "widevine": true
      },
      "enabled": true,
      "follow_source_fps": true,
      "gop": 25,
      "interlacing_filter_mode": "INTERLACING_FILTER_MODE_UNSPECIFIED",
      "key_frame_interval": 1,
      "level": 0.1,
      "llhls_settings": {
        "is_enabled": true,
        "part_size": 250,
        "segment_count": 10,
        "segment_size": 1
      },
      "low_latency": true,
      "profile": "TRANSCODING_PROFILE_UNSPECIFIED",
      "segment_size": 1,
      "tracking_pixel": true,
      "use_cdn": true,
      "video_representation_ids": [
        "string"
      ],
      "watermark": {
        "enabled": true,
        "url": "https://images.mls.mycujoo.tv/example.png"
      }
    }
  },
  "config_id": "string",
  "connection_time_seconds": 0,
  "endpoint": "string",
  "external_video_source": "string",
  "id": "string",
  "incoming_feed": {
    "device": {
      "flash_version": "string",
      "name": "string"
    },
    "http_flv_endpoint": "string",
    "is_active": true,
    "protocol": "INGEST_PROTOCOL_UNSPECIFIED",
    "session_id": "string"
  },
  "incoming_feed_flv": "string",
  "is_active": true,
  "is_enabled": true,
  "is_public": true,
  "is_published": true,
  "key": "string",
  "media_source_id": "string",
  "playlists": [
    {
      "id": "string",
      "is_enabled": true,
      "is_transcoded": true,
      "is_updating": true,
      "is_vod": true,
      "protocol": "PROTOCOL_UNSPECIFIED",
      "type": "TYPE_UNSPECIFIED",
      "url": "string"
    }
  ],
  "project_id": "string",
  "pull_endpoints": [
    {
      "config_id": "string",
      "endpoint": "string",
      "id": "string",
      "is_transcoded": true,
      "protocol": "PROTOCOL_UNSPECIFIED",
      "scene_settings": {
        "is_enabled": true,
        "key_color": "SCENE_KEY_COLOR_UNSPECIFIED",
        "scene_id": "string",
        "variables": {
          "property1": "string",
          "property2": "string"
        }
      },
      "video_representation_id": "string"
    }
  ],
  "pull_ingest_id": "string",
  "push_endpoints": [
    {
      "config_id": "qurnvkspnrjqk",
      "endpoint": "rtmp://something/live",
      "protocol": "RTMP",
      "stream_id": "abcdefghi"
    }
  ],
  "push_ingest_endpoints": [
    {
      "endpoint": "string",
      "in_use": true,
      "protocol": "PUSH_INGEST_PROTOCOL_UNSPECIFIED",
      "region": "REGION_UNSPECIFIED",
      "secure_endpoint": "string",
      "secure_uri": "string",
      "support_tls": true,
      "uri": "string"
    }
  ],
  "region": "REGION_UNSPECIFIED",
  "stats": {
    "audio_bit_rate": 0,
    "audios": [
      {
        "bit_rate": 0,
        "channel_layout": "string",
        "channels": 0,
        "codec": "string",
        "codec_long_name": "string",
        "codec_type": "string",
        "index": 0,
        "profile": "string",
        "sample_fmt": "string",
        "sample_rate": 0
      }
    ],
    "connection_count": 0,
    "sample": {
      "audio_bit_rate": 0,
      "video_bit_rate": 0,
      "video_frame_rate": 0.1,
      "video_key_frame_consistent": true,
      "video_key_frame_interval": 0.1,
      "video_resolution": 0
    },
    "video_bit_rate": 0,
    "video_frame_rate": 0.1,
    "video_key_frame_consistent": true,
    "video_key_frame_interval": 0.1,
    "video_resolution": 0,
    "videos": [
      {
        "bit_rate": 0,
        "codec": "string",
        "codec_long_name": "string",
        "codec_type": "string",
        "frame_rate": 0.1,
        "height": 0,
        "index": 0,
        "level": 0,
        "pix_fmt": "string",
        "profile": "string",
        "resolution": 0,
        "start_pts": 0,
        "width": 0
      }
    ]
  },
  "title": "string",
  "transcoding_state": "STATE_UNSPECIFIED",
  "transcoding_time_seconds": 0,
  "type": "TYPE_UNSPECIFIED",
  "upload_id": "string",
  "vod_asset_id": "string"
}

Responses

Status Meaning Description Schema
200 OK (empty) mycujoo.streaming.v1.Stream
default Default An unexpected error response. google.rpc.Status

Returns a list of simple streams by ids

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/streaming/v1/streams/batch', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/streaming/v1/streams/batch", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/streaming/v1/streams/batch HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/streams/batch',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/streams/batch',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /streaming/v1/streams/batch

Returns a list of streams by ids.

Parameters

Name In Type Required Description
ids query array[string] false stream ids

Example responses

200 Response

{
  "streams": [
    {
      "config": {
        "auto_enable_vpn_blocking": true,
        "default": true,
        "dvr_settings": {
          "automatic_vod": true,
          "enabled": true,
          "stop_transcoding_full_dvr": true,
          "window_size": 1
        },
        "enable_pull_endpoint": true,
        "enable_raw_pull_endpoint": true,
        "id": "string",
        "is_system": true,
        "name": "string",
        "recording_settings": {
          "autostart": true,
          "enabled": true,
          "record_during_transcoding": true
        },
        "scene_settings": {
          "is_enabled": true,
          "key_color": "SCENE_KEY_COLOR_UNSPECIFIED",
          "scene_id": "string"
        },
        "secure_link": true,
        "transcoding_settings": {
          "audio_bitrate": 32,
          "autostart": true,
          "drm": {
            "fairplay": true,
            "playready": true,
            "widevine": true
          },
          "enabled": true,
          "follow_source_fps": true,
          "gop": 25,
          "interlacing_filter_mode": "INTERLACING_FILTER_MODE_UNSPECIFIED",
          "key_frame_interval": 1,
          "level": 0.1,
          "llhls_settings": {
            "is_enabled": true,
            "part_size": 250,
            "segment_count": 10,
            "segment_size": 1
          },
          "low_latency": true,
          "profile": "TRANSCODING_PROFILE_UNSPECIFIED",
          "segment_size": 1,
          "tracking_pixel": true,
          "use_cdn": true,
          "video_representation_ids": [
            "string"
          ],
          "watermark": {
            "enabled": true,
            "url": "https://images.mls.mycujoo.tv/example.png"
          }
        }
      },
      "config_id": "string",
      "connection_time_seconds": 0,
      "endpoint": "string",
      "external_video_source": "string",
      "id": "string",
      "incoming_feed": {
        "device": {
          "flash_version": "string",
          "name": "string"
        },
        "http_flv_endpoint": "string",
        "is_active": true,
        "protocol": "INGEST_PROTOCOL_UNSPECIFIED",
        "session_id": "string"
      },
      "incoming_feed_flv": "string",
      "is_active": true,
      "is_enabled": true,
      "is_public": true,
      "is_published": true,
      "key": "string",
      "media_source_id": "string",
      "playlists": [
        {
          "id": "string",
          "is_enabled": true,
          "is_transcoded": true,
          "is_updating": true,
          "is_vod": true,
          "protocol": "PROTOCOL_UNSPECIFIED",
          "type": "TYPE_UNSPECIFIED",
          "url": "string"
        }
      ],
      "project_id": "string",
      "pull_endpoints": [
        {
          "config_id": "string",
          "endpoint": "string",
          "id": "string",
          "is_transcoded": true,
          "protocol": "PROTOCOL_UNSPECIFIED",
          "scene_settings": {
            "is_enabled": true,
            "key_color": "SCENE_KEY_COLOR_UNSPECIFIED",
            "scene_id": "string",
            "variables": {
              "property1": "string",
              "property2": "string"
            }
          },
          "video_representation_id": "string"
        }
      ],
      "pull_ingest_id": "string",
      "push_endpoints": [
        {
          "config_id": "qurnvkspnrjqk",
          "endpoint": "rtmp://something/live",
          "protocol": "RTMP",
          "stream_id": "abcdefghi"
        }
      ],
      "push_ingest_endpoints": [
        {
          "endpoint": "string",
          "in_use": true,
          "protocol": "PUSH_INGEST_PROTOCOL_UNSPECIFIED",
          "region": "REGION_UNSPECIFIED",
          "secure_endpoint": "string",
          "secure_uri": "string",
          "support_tls": true,
          "uri": "string"
        }
      ],
      "region": "REGION_UNSPECIFIED",
      "stats": {
        "audio_bit_rate": 0,
        "audios": [
          {
            "bit_rate": 0,
            "channel_layout": "string",
            "channels": 0,
            "codec": "string",
            "codec_long_name": "string",
            "codec_type": "string",
            "index": 0,
            "profile": "string",
            "sample_fmt": "string",
            "sample_rate": 0
          }
        ],
        "connection_count": 0,
        "sample": {
          "audio_bit_rate": 0,
          "video_bit_rate": 0,
          "video_frame_rate": 0.1,
          "video_key_frame_consistent": true,
          "video_key_frame_interval": 0.1,
          "video_resolution": 0
        },
        "video_bit_rate": 0,
        "video_frame_rate": 0.1,
        "video_key_frame_consistent": true,
        "video_key_frame_interval": 0.1,
        "video_resolution": 0,
        "videos": [
          {
            "bit_rate": 0,
            "codec": "string",
            "codec_long_name": "string",
            "codec_type": "string",
            "frame_rate": 0.1,
            "height": 0,
            "index": 0,
            "level": 0,
            "pix_fmt": "string",
            "profile": "string",
            "resolution": 0,
            "start_pts": 0,
            "width": 0
          }
        ]
      },
      "title": "string",
      "transcoding_state": "STATE_UNSPECIFIED",
      "transcoding_time_seconds": 0,
      "type": "TYPE_UNSPECIFIED",
      "upload_id": "string",
      "vod_asset_id": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.streaming.v1.BatchGetStreamsResponse
default Default An unexpected error response. google.rpc.Status

TestIamPermissions

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.post('https://mcls-api.mycujoo.tv/streaming/v1/streams/test_iam_permissions', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/streaming/v1/streams/test_iam_permissions", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/streaming/v1/streams/test_iam_permissions HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "permissions": [
    "projects.create",
    "projects.update",
    "projects.delete"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/streams/test_iam_permissions',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "permissions": [
    "projects.create",
    "projects.update",
    "projects.delete"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/streams/test_iam_permissions',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /streaming/v1/streams/test_iam_permissions

This method validates the current account given a list of permissions. Used for UI

Body parameter

{
  "permissions": [
    "projects.create",
    "projects.update",
    "projects.delete"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
}

Parameters

Name In Type Required Description
body body mycujoo.streaming.v1.StreamTestIamPermissionsRequest true none

Example responses

200 Response

{
  "permissions": [
    "projects.create",
    "projects.update"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.streaming.v1.StreamTestIamPermissionsResponse
default Default An unexpected error response. google.rpc.Status

Returns a single stream

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/streaming/v1/streams/{stream_id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/streaming/v1/streams/{stream_id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/streaming/v1/streams/{stream_id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/streams/{stream_id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/streams/{stream_id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /streaming/v1/streams/{stream_id}

Returns a single Stream resource.

Parameters

Name In Type Required Description
stream_id path string true The stream ID

Example responses

200 Response

{
  "config": {
    "auto_enable_vpn_blocking": true,
    "default": true,
    "dvr_settings": {
      "automatic_vod": true,
      "enabled": true,
      "stop_transcoding_full_dvr": true,
      "window_size": 1
    },
    "enable_pull_endpoint": true,
    "enable_raw_pull_endpoint": true,
    "id": "string",
    "is_system": true,
    "name": "string",
    "recording_settings": {
      "autostart": true,
      "enabled": true,
      "record_during_transcoding": true
    },
    "scene_settings": {
      "is_enabled": true,
      "key_color": "SCENE_KEY_COLOR_UNSPECIFIED",
      "scene_id": "string"
    },
    "secure_link": true,
    "transcoding_settings": {
      "audio_bitrate": 32,
      "autostart": true,
      "drm": {
        "fairplay": true,
        "playready": true,
        "widevine": true
      },
      "enabled": true,
      "follow_source_fps": true,
      "gop": 25,
      "interlacing_filter_mode": "INTERLACING_FILTER_MODE_UNSPECIFIED",
      "key_frame_interval": 1,
      "level": 0.1,
      "llhls_settings": {
        "is_enabled": true,
        "part_size": 250,
        "segment_count": 10,
        "segment_size": 1
      },
      "low_latency": true,
      "profile": "TRANSCODING_PROFILE_UNSPECIFIED",
      "segment_size": 1,
      "tracking_pixel": true,
      "use_cdn": true,
      "video_representation_ids": [
        "string"
      ],
      "watermark": {
        "enabled": true,
        "url": "https://images.mls.mycujoo.tv/example.png"
      }
    }
  },
  "config_id": "string",
  "connection_time_seconds": 0,
  "endpoint": "string",
  "external_video_source": "string",
  "id": "string",
  "incoming_feed": {
    "device": {
      "flash_version": "string",
      "name": "string"
    },
    "http_flv_endpoint": "string",
    "is_active": true,
    "protocol": "INGEST_PROTOCOL_UNSPECIFIED",
    "session_id": "string"
  },
  "incoming_feed_flv": "string",
  "is_active": true,
  "is_enabled": true,
  "is_public": true,
  "is_published": true,
  "key": "string",
  "media_source_id": "string",
  "playlists": [
    {
      "id": "string",
      "is_enabled": true,
      "is_transcoded": true,
      "is_updating": true,
      "is_vod": true,
      "protocol": "PROTOCOL_UNSPECIFIED",
      "type": "TYPE_UNSPECIFIED",
      "url": "string"
    }
  ],
  "project_id": "string",
  "pull_endpoints": [
    {
      "config_id": "string",
      "endpoint": "string",
      "id": "string",
      "is_transcoded": true,
      "protocol": "PROTOCOL_UNSPECIFIED",
      "scene_settings": {
        "is_enabled": true,
        "key_color": "SCENE_KEY_COLOR_UNSPECIFIED",
        "scene_id": "string",
        "variables": {
          "property1": "string",
          "property2": "string"
        }
      },
      "video_representation_id": "string"
    }
  ],
  "pull_ingest_id": "string",
  "push_endpoints": [
    {
      "config_id": "qurnvkspnrjqk",
      "endpoint": "rtmp://something/live",
      "protocol": "RTMP",
      "stream_id": "abcdefghi"
    }
  ],
  "push_ingest_endpoints": [
    {
      "endpoint": "string",
      "in_use": true,
      "protocol": "PUSH_INGEST_PROTOCOL_UNSPECIFIED",
      "region": "REGION_UNSPECIFIED",
      "secure_endpoint": "string",
      "secure_uri": "string",
      "support_tls": true,
      "uri": "string"
    }
  ],
  "region": "REGION_UNSPECIFIED",
  "stats": {
    "audio_bit_rate": 0,
    "audios": [
      {
        "bit_rate": 0,
        "channel_layout": "string",
        "channels": 0,
        "codec": "string",
        "codec_long_name": "string",
        "codec_type": "string",
        "index": 0,
        "profile": "string",
        "sample_fmt": "string",
        "sample_rate": 0
      }
    ],
    "connection_count": 0,
    "sample": {
      "audio_bit_rate": 0,
      "video_bit_rate": 0,
      "video_frame_rate": 0.1,
      "video_key_frame_consistent": true,
      "video_key_frame_interval": 0.1,
      "video_resolution": 0
    },
    "video_bit_rate": 0,
    "video_frame_rate": 0.1,
    "video_key_frame_consistent": true,
    "video_key_frame_interval": 0.1,
    "video_resolution": 0,
    "videos": [
      {
        "bit_rate": 0,
        "codec": "string",
        "codec_long_name": "string",
        "codec_type": "string",
        "frame_rate": 0.1,
        "height": 0,
        "index": 0,
        "level": 0,
        "pix_fmt": "string",
        "profile": "string",
        "resolution": 0,
        "start_pts": 0,
        "width": 0
      }
    ]
  },
  "title": "string",
  "transcoding_state": "STATE_UNSPECIFIED",
  "transcoding_time_seconds": 0,
  "type": "TYPE_UNSPECIFIED",
  "upload_id": "string",
  "vod_asset_id": "string"
}

Responses

Status Meaning Description Schema
200 OK (empty) mycujoo.streaming.v1.Stream
default Default An unexpected error response. google.rpc.Status

Deletes a single stream

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.delete('https://mcls-api.mycujoo.tv/streaming/v1/streams/{stream_id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "https://mcls-api.mycujoo.tv/streaming/v1/streams/{stream_id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE https://mcls-api.mycujoo.tv/streaming/v1/streams/{stream_id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/streams/{stream_id}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/streams/{stream_id}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

DELETE /streaming/v1/streams/{stream_id}

Deletes a single Stream resource.

Parameters

Name In Type Required Description
stream_id path string true The stream ID
purge query boolean false If set to true all information related to this stream is deleted and will not be recoverable.

Detailed descriptions

purge: If set to true all information related to this stream is deleted and will not be recoverable. Resources deleted are: Recordings, VODs and all references to the stream. USE WITH CAUTION.

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.streaming.v1.DeleteStreamResponse
default Default An unexpected error response. google.rpc.Status

Patch a single stream

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.patch('https://mcls-api.mycujoo.tv/streaming/v1/streams/{stream_id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "https://mcls-api.mycujoo.tv/streaming/v1/streams/{stream_id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PATCH https://mcls-api.mycujoo.tv/streaming/v1/streams/{stream_id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "config_id": "string",
  "external_video_source": "string",
  "is_enabled": true,
  "is_public": true,
  "is_published": true,
  "media_source_id": "string",
  "project_id": "string",
  "pull_config": {
    "config_id": "string",
    "video_representation_id": "string"
  },
  "pull_ingest_id": "string",
  "push_endpoints": [
    {
      "config_id": "qurnvkspnrjqk",
      "endpoint": "rtmp://something/live",
      "protocol": "RTMP",
      "stream_id": "abcdefghi"
    }
  ],
  "region": "REGION_UNSPECIFIED",
  "title": "string",
  "type": "TYPE_UNSPECIFIED",
  "upload_id": "string",
  "vod_asset_id": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/streams/{stream_id}',
{
  method: 'PATCH',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "config_id": "string",
  "external_video_source": "string",
  "is_enabled": true,
  "is_public": true,
  "is_published": true,
  "media_source_id": "string",
  "project_id": "string",
  "pull_config": {
    "config_id": "string",
    "video_representation_id": "string"
  },
  "pull_ingest_id": "string",
  "push_endpoints": [
    {
      "config_id": "qurnvkspnrjqk",
      "endpoint": "rtmp://something/live",
      "protocol": "RTMP",
      "stream_id": "abcdefghi"
    }
  ],
  "region": "REGION_UNSPECIFIED",
  "title": "string",
  "type": "TYPE_UNSPECIFIED",
  "upload_id": "string",
  "vod_asset_id": "string"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/streams/{stream_id}',
{
  method: 'PATCH',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PATCH /streaming/v1/streams/{stream_id}

Patches a single Stream resource.

Body parameter

{
  "config_id": "string",
  "external_video_source": "string",
  "is_enabled": true,
  "is_public": true,
  "is_published": true,
  "media_source_id": "string",
  "project_id": "string",
  "pull_config": {
    "config_id": "string",
    "video_representation_id": "string"
  },
  "pull_ingest_id": "string",
  "push_endpoints": [
    {
      "config_id": "qurnvkspnrjqk",
      "endpoint": "rtmp://something/live",
      "protocol": "RTMP",
      "stream_id": "abcdefghi"
    }
  ],
  "region": "REGION_UNSPECIFIED",
  "title": "string",
  "type": "TYPE_UNSPECIFIED",
  "upload_id": "string",
  "vod_asset_id": "string"
}

Parameters

Name In Type Required Description
stream_id path string true The stream ID
body body mycujoo.streaming.v1.StreamUpdate true Update

Example responses

200 Response

{
  "config": {
    "auto_enable_vpn_blocking": true,
    "default": true,
    "dvr_settings": {
      "automatic_vod": true,
      "enabled": true,
      "stop_transcoding_full_dvr": true,
      "window_size": 1
    },
    "enable_pull_endpoint": true,
    "enable_raw_pull_endpoint": true,
    "id": "string",
    "is_system": true,
    "name": "string",
    "recording_settings": {
      "autostart": true,
      "enabled": true,
      "record_during_transcoding": true
    },
    "scene_settings": {
      "is_enabled": true,
      "key_color": "SCENE_KEY_COLOR_UNSPECIFIED",
      "scene_id": "string"
    },
    "secure_link": true,
    "transcoding_settings": {
      "audio_bitrate": 32,
      "autostart": true,
      "drm": {
        "fairplay": true,
        "playready": true,
        "widevine": true
      },
      "enabled": true,
      "follow_source_fps": true,
      "gop": 25,
      "interlacing_filter_mode": "INTERLACING_FILTER_MODE_UNSPECIFIED",
      "key_frame_interval": 1,
      "level": 0.1,
      "llhls_settings": {
        "is_enabled": true,
        "part_size": 250,
        "segment_count": 10,
        "segment_size": 1
      },
      "low_latency": true,
      "profile": "TRANSCODING_PROFILE_UNSPECIFIED",
      "segment_size": 1,
      "tracking_pixel": true,
      "use_cdn": true,
      "video_representation_ids": [
        "string"
      ],
      "watermark": {
        "enabled": true,
        "url": "https://images.mls.mycujoo.tv/example.png"
      }
    }
  },
  "config_id": "string",
  "connection_time_seconds": 0,
  "endpoint": "string",
  "external_video_source": "string",
  "id": "string",
  "incoming_feed": {
    "device": {
      "flash_version": "string",
      "name": "string"
    },
    "http_flv_endpoint": "string",
    "is_active": true,
    "protocol": "INGEST_PROTOCOL_UNSPECIFIED",
    "session_id": "string"
  },
  "incoming_feed_flv": "string",
  "is_active": true,
  "is_enabled": true,
  "is_public": true,
  "is_published": true,
  "key": "string",
  "media_source_id": "string",
  "playlists": [
    {
      "id": "string",
      "is_enabled": true,
      "is_transcoded": true,
      "is_updating": true,
      "is_vod": true,
      "protocol": "PROTOCOL_UNSPECIFIED",
      "type": "TYPE_UNSPECIFIED",
      "url": "string"
    }
  ],
  "project_id": "string",
  "pull_endpoints": [
    {
      "config_id": "string",
      "endpoint": "string",
      "id": "string",
      "is_transcoded": true,
      "protocol": "PROTOCOL_UNSPECIFIED",
      "scene_settings": {
        "is_enabled": true,
        "key_color": "SCENE_KEY_COLOR_UNSPECIFIED",
        "scene_id": "string",
        "variables": {
          "property1": "string",
          "property2": "string"
        }
      },
      "video_representation_id": "string"
    }
  ],
  "pull_ingest_id": "string",
  "push_endpoints": [
    {
      "config_id": "qurnvkspnrjqk",
      "endpoint": "rtmp://something/live",
      "protocol": "RTMP",
      "stream_id": "abcdefghi"
    }
  ],
  "push_ingest_endpoints": [
    {
      "endpoint": "string",
      "in_use": true,
      "protocol": "PUSH_INGEST_PROTOCOL_UNSPECIFIED",
      "region": "REGION_UNSPECIFIED",
      "secure_endpoint": "string",
      "secure_uri": "string",
      "support_tls": true,
      "uri": "string"
    }
  ],
  "region": "REGION_UNSPECIFIED",
  "stats": {
    "audio_bit_rate": 0,
    "audios": [
      {
        "bit_rate": 0,
        "channel_layout": "string",
        "channels": 0,
        "codec": "string",
        "codec_long_name": "string",
        "codec_type": "string",
        "index": 0,
        "profile": "string",
        "sample_fmt": "string",
        "sample_rate": 0
      }
    ],
    "connection_count": 0,
    "sample": {
      "audio_bit_rate": 0,
      "video_bit_rate": 0,
      "video_frame_rate": 0.1,
      "video_key_frame_consistent": true,
      "video_key_frame_interval": 0.1,
      "video_resolution": 0
    },
    "video_bit_rate": 0,
    "video_frame_rate": 0.1,
    "video_key_frame_consistent": true,
    "video_key_frame_interval": 0.1,
    "video_resolution": 0,
    "videos": [
      {
        "bit_rate": 0,
        "codec": "string",
        "codec_long_name": "string",
        "codec_type": "string",
        "frame_rate": 0.1,
        "height": 0,
        "index": 0,
        "level": 0,
        "pix_fmt": "string",
        "profile": "string",
        "resolution": 0,
        "start_pts": 0,
        "width": 0
      }
    ]
  },
  "title": "string",
  "transcoding_state": "STATE_UNSPECIFIED",
  "transcoding_time_seconds": 0,
  "type": "TYPE_UNSPECIFIED",
  "upload_id": "string",
  "vod_asset_id": "string"
}

Responses

Status Meaning Description Schema
200 OK (empty) mycujoo.streaming.v1.Stream
default Default An unexpected error response. google.rpc.Status

Returns stream's sessions activities

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/streaming/v1/streams/{stream_id}/activities', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/streaming/v1/streams/{stream_id}/activities", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/streaming/v1/streams/{stream_id}/activities HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/streams/{stream_id}/activities',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/streams/{stream_id}/activities',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /streaming/v1/streams/{stream_id}/activities

Returns the list of the stream's sessions activities

Parameters

Name In Type Required Description
stream_id path string true The stream id
page_size query integer(int32) false A positive number that is the maximum number of results to return.
page_token query string false If this field is not empty then it must contain the next_page_token value

Detailed descriptions

page_token: If this field is not empty then it must contain the next_page_token value returned by a previous call to this method. Using this field causes the method to return additional results from the previous method call. NOTE: pageToken is a string integer instead of an ID, because stream_activity table not contains the ID field

Example responses

200 Response

{
  "next_page_token": "string",
  "sessions": [
    {
      "activities": [
        {
          "timestamp": "2019-08-24T14:15:22Z",
          "type": "string"
        }
      ],
      "id": "string"
    }
  ],
  "total_size": 0
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.streaming.v1.GetStreamSessionActivitiesResponse
default Default An unexpected error response. google.rpc.Status

List all recording assets for requested stream

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/streaming/v1/streams/{stream_id}/assets/recording', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/streaming/v1/streams/{stream_id}/assets/recording", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/streaming/v1/streams/{stream_id}/assets/recording HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/streams/{stream_id}/assets/recording',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/streams/{stream_id}/assets/recording',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /streaming/v1/streams/{stream_id}/assets/recording

List recording assets for this stream

Parameters

Name In Type Required Description
stream_id path string true The stream ID
filter query string false filter options
page_size query integer(int32) false A positive number that is the maximum number of results to return.
page_token query string false If this field is not empty then it must contain the next_page_token value

Detailed descriptions

filter: filter options supports filter: * is_concatenated BOOLEAN

page_token: If this field is not empty then it must contain the next_page_token value returned by a previous call to this method. Using this field causes the method to return additional results from the previous method call.

Example responses

200 Response

{
  "next_page_token": "string",
  "recording_assets": [
    {
      "asset_url": "string",
      "id": "string",
      "is_concatenated": true,
      "status": "STATUS_UNSPECIFIED",
      "stream_id": "string",
      "stream_key": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.streaming.v1.ListRecordingAssetsResponse
default Default An unexpected error response. google.rpc.Status

GetStreamIamPolicy

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/streaming/v1/streams/{stream_id}/iam_policy', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/streaming/v1/streams/{stream_id}/iam_policy", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/streaming/v1/streams/{stream_id}/iam_policy HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/streams/{stream_id}/iam_policy',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/streams/{stream_id}/iam_policy',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /streaming/v1/streams/{stream_id}/iam_policy

Returns current IAM policy for the stream. Use returned policy and etag to update policy.

Parameters

Name In Type Required Description
stream_id path string true none

Example responses

200 Response

{
  "etag": "string",
  "policy": {
    "bindings": [
      {
        "account_ids": [
          "2GzbST9DaEPsNcDTaW30GWnfZyw",
          "2GzbTHf7FfMyGv2F71FWwGRzKWb"
        ],
        "role_id": "owner"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "projects.admin"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "accounts.admin"
      }
    ]
  },
  "resource_hierarchy": [
    {
      "id": "elevendata",
      "type": "project"
    }
  ],
  "resource_title": "string"
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.streaming.v1.GetStreamIamPolicyResponse
default Default An unexpected error response. google.rpc.Status

SetStreamIamPolicy

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.post('https://mcls-api.mycujoo.tv/streaming/v1/streams/{stream_id}/iam_policy', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/streaming/v1/streams/{stream_id}/iam_policy", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/streaming/v1/streams/{stream_id}/iam_policy HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "etag": "string",
  "policy": {
    "bindings": [
      {
        "account_ids": [
          "2GzbST9DaEPsNcDTaW30GWnfZyw",
          "2GzbTHf7FfMyGv2F71FWwGRzKWb"
        ],
        "role_id": "owner"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "projects.admin"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "accounts.admin"
      }
    ]
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/streams/{stream_id}/iam_policy',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "etag": "string",
  "policy": {
    "bindings": [
      {
        "account_ids": [
          "2GzbST9DaEPsNcDTaW30GWnfZyw",
          "2GzbTHf7FfMyGv2F71FWwGRzKWb"
        ],
        "role_id": "owner"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "projects.admin"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "accounts.admin"
      }
    ]
  }
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/streams/{stream_id}/iam_policy',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /streaming/v1/streams/{stream_id}/iam_policy

Set IAM policy for the stream. This method replaces all existing policy bindings for the stream. To prevent overwriting existing policy bindings that were written concurrently, use the etag field to perform a read-modify-write operation. For example: Making a new account to become a stream editor would require reading IAM Policy for the stream, add a new binding or update existing binding with role_id: editor, and then set the new policy with etag returned by GetStreamIamPolicy.

Body parameter

{
  "etag": "string",
  "policy": {
    "bindings": [
      {
        "account_ids": [
          "2GzbST9DaEPsNcDTaW30GWnfZyw",
          "2GzbTHf7FfMyGv2F71FWwGRzKWb"
        ],
        "role_id": "owner"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "projects.admin"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "accounts.admin"
      }
    ]
  }
}

Parameters

Name In Type Required Description
stream_id path string true none
body body object true none
ยป etag body string(byte) false none
ยป policy body mycujoo.auth.v1.Policy true Authorization policy.
ยปยป bindings body [mycujoo.auth.v1.Binding] false List of bindings to the policy. If empty, the policy will not have any effect.
ยปยปยป account_ids body [string] false List of account identifiers (referencing mycujoo.accounts.v1.Account) that have the role.
ยปยปยป include_all_organization_accounts body boolean false If this is set to true then the role is granted to all accounts in the organization. It overrides the account_ids field.
ยปยปยป role_id body string false none

Detailed descriptions

ยปยป bindings: List of bindings to the policy. If empty, the policy will not have any effect. Total number of accounts referenced in the bindings should be up to 1500. If same account has multiple roles - it is counted multiple times.

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.streaming.v1.SetStreamIamPolicyResponse
default Default An unexpected error response. google.rpc.Status

Stops the recording process

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.delete('https://mcls-api.mycujoo.tv/streaming/v1/streams/{stream_id}/recordings', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "https://mcls-api.mycujoo.tv/streaming/v1/streams/{stream_id}/recordings", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE https://mcls-api.mycujoo.tv/streaming/v1/streams/{stream_id}/recordings HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/streams/{stream_id}/recordings',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/streams/{stream_id}/recordings',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

DELETE /streaming/v1/streams/{stream_id}/recordings

Stops the recording process for a given stream.

Parameters

Name In Type Required Description
stream_id path string true The stream ID

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.streaming.v1.StopRecordingResponse
default Default An unexpected error response. google.rpc.Status

Returns an active concat recordings job

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/streaming/v1/streams/{stream_id}/recordings/concat', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/streaming/v1/streams/{stream_id}/recordings/concat", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/streaming/v1/streams/{stream_id}/recordings/concat HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/streams/{stream_id}/recordings/concat',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/streams/{stream_id}/recordings/concat',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /streaming/v1/streams/{stream_id}/recordings/concat

Get the last and active concat recordings' object for a stream

Parameters

Name In Type Required Description
stream_id path string true The stream ID

Example responses

200 Response

{
  "destination_asset_id": "string",
  "id": "string",
  "state": "STATE_UNSPECIFIED",
  "status": "STATUS_UNSPECIFIED",
  "stream_id": "string"
}

Responses

Status Meaning Description Schema
200 OK (empty) mycujoo.streaming.v1.Concat
default Default An unexpected error response. google.rpc.Status

StartConcatRecordings all recordings into a single recording

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.post('https://mcls-api.mycujoo.tv/streaming/v1/streams/{stream_id}/recordings/concat', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/streaming/v1/streams/{stream_id}/recordings/concat", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/streaming/v1/streams/{stream_id}/recordings/concat HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "delete_existing": true,
  "force": true,
  "format": "FORMAT_UNSPECIFIED"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/streams/{stream_id}/recordings/concat',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "delete_existing": true,
  "force": true,
  "format": "FORMAT_UNSPECIFIED"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/streams/{stream_id}/recordings/concat',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /streaming/v1/streams/{stream_id}/recordings/concat

Concatenate all recordings into a single recording. This is an asynchronous call and can accept a base64 encoded webhook URL.

Body parameter

{
  "delete_existing": true,
  "force": true,
  "format": "FORMAT_UNSPECIFIED"
}

Parameters

Name In Type Required Description
stream_id path string true The stream ID
body body object true none
ยป delete_existing body boolean false Will delete all existing recordings that have been concatenated after the job has completed.
ยป force body boolean false rec1, rec2(not found), rec3, rec4
ยป format body mycujoo.streaming.v1.StartConcatRecordingsRequest.Format false none

Detailed descriptions

ยป force: rec1, rec2(not found), rec3, rec4 Force way: rec1+rec3+rec4=concatenated1

Enumerated Values

Parameter Value
ยป format FORMAT_UNSPECIFIED
ยป format FORMAT_FLV
ยป format FORMAT_MP4
ยป format FORMAT_TS

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.streaming.v1.StartConcatRecordingsResponse
default Default An unexpected error response. google.rpc.Status

Returns a time series of stream stats

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/streaming/v1/streams/{stream_id}/stats', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/streaming/v1/streams/{stream_id}/stats", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/streaming/v1/streams/{stream_id}/stats HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/streams/{stream_id}/stats',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/streams/{stream_id}/stats',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /streaming/v1/streams/{stream_id}/stats

Get a time series of a stream's stats.

Parameters

Name In Type Required Description
stream_id path string true The stream ID
start_time query string(date-time) false Start time of the time series
end_time query string(date-time) false End time of the time series

Example responses

200 Response

{
  "stream_stats": [
    {
      "audio_bit_rate": 0,
      "connection_count": 0,
      "key_frame_consistent": true,
      "key_frame_interval": 0.1,
      "time": "2019-08-24T14:15:22Z",
      "video_bit_rate": 0,
      "video_fps": 0.1,
      "video_height": 0
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.streaming.v1.GetStreamStatsTimeSeriesResponse
default Default An unexpected error response. google.rpc.Status

Returns a single transcoding

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/streaming/v1/streams/{stream_id}/transcoding', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/streaming/v1/streams/{stream_id}/transcoding", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/streaming/v1/streams/{stream_id}/transcoding HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/streams/{stream_id}/transcoding',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/streams/{stream_id}/transcoding',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /streaming/v1/streams/{stream_id}/transcoding

Get the last transcoding object for a stream

Parameters

Name In Type Required Description
stream_id path string true The stream ID

Example responses

200 Response

{
  "id": "string",
  "progress": 100,
  "start_offset": 0,
  "state": "STATE_UNSPECIFIED",
  "status": "STATUS_UNSPECIFIED",
  "stream_id": "string"
}

Responses

Status Meaning Description Schema
200 OK (empty) mycujoo.streaming.v1.Transcoding
default Default An unexpected error response. google.rpc.Status

Start transcoding for this stream

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.post('https://mcls-api.mycujoo.tv/streaming/v1/streams/{stream_id}/transcoding', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/streaming/v1/streams/{stream_id}/transcoding", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/streaming/v1/streams/{stream_id}/transcoding HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "start_offset": 0
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/streams/{stream_id}/transcoding',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "start_offset": 0
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/streams/{stream_id}/transcoding',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /streaming/v1/streams/{stream_id}/transcoding

Start transcoding for either a static resource or a stream.

Body parameter

{
  "start_offset": 0
}

Parameters

Name In Type Required Description
stream_id path string true The stream ID
body body mycujoo.streaming.v1.TranscodingOffset true Position in the source where transcoding should start from.

Detailed descriptions

body: Position in the source where transcoding should start from. Only valid when type = static.

Example responses

200 Response

{
  "id": "string",
  "progress": 100,
  "start_offset": 0,
  "state": "STATE_UNSPECIFIED",
  "status": "STATUS_UNSPECIFIED",
  "stream_id": "string"
}

Responses

Status Meaning Description Schema
200 OK (empty) mycujoo.streaming.v1.Transcoding
default Default An unexpected error response. google.rpc.Status

Stops the transcoding process

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.delete('https://mcls-api.mycujoo.tv/streaming/v1/streams/{stream_id}/transcoding', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "https://mcls-api.mycujoo.tv/streaming/v1/streams/{stream_id}/transcoding", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE https://mcls-api.mycujoo.tv/streaming/v1/streams/{stream_id}/transcoding HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/streams/{stream_id}/transcoding',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/streams/{stream_id}/transcoding',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

DELETE /streaming/v1/streams/{stream_id}/transcoding

Stops the transcoding process for the given stream.

Parameters

Name In Type Required Description
stream_id path string true The stream ID

Example responses

200 Response

{
  "id": "string",
  "progress": 100,
  "start_offset": 0,
  "state": "STATE_UNSPECIFIED",
  "status": "STATUS_UNSPECIFIED",
  "stream_id": "string"
}

Responses

Status Meaning Description Schema
200 OK (empty) mycujoo.streaming.v1.Transcoding
default Default An unexpected error response. google.rpc.Status

Start transcoding import for a stream

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.post('https://mcls-api.mycujoo.tv/streaming/v1/streams/{stream_id}/transcoding/import', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/streaming/v1/streams/{stream_id}/transcoding/import", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/streaming/v1/streams/{stream_id}/transcoding/import HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "playlist_url": "string",
  "starting_segment": 0
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/streams/{stream_id}/transcoding/import',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "playlist_url": "string",
  "starting_segment": 0
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/streaming/v1/streams/{stream_id}/transcoding/import',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /streaming/v1/streams/{stream_id}/transcoding/import

Imports the transcoded segments by using the source playlist

Body parameter

{
  "playlist_url": "string",
  "starting_segment": 0
}

Parameters

Name In Type Required Description
stream_id path string true The stream ID
body body mycujoo.streaming.v1.TranscodingImport true none

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.streaming.v1.StartTranscodingImportResponse
default Default An unexpected error response. google.rpc.Status

SubscriptionsService

List packages

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/subscriptions/v1beta1/packages', params={
  'order_by': 'ORDER_UNSPECIFIED',  'page_size': '0'
}, headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/subscriptions/v1beta1/packages", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/subscriptions/v1beta1/packages?order_by=ORDER_UNSPECIFIED&page_size=0 HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/subscriptions/v1beta1/packages?order_by=ORDER_UNSPECIFIED&page_size=0',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/subscriptions/v1beta1/packages?order_by=ORDER_UNSPECIFIED&page_size=0',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /subscriptions/v1beta1/packages

Parameters

Name In Type Required Description
order_by query string true Specifies the result ordering
page_size query integer(int32) true Maximum number of records to return.
page_token query string false Token used for cursor pagination.
page_offset query integer(int32) false Offset from where to start returning data.
includes query array[string] false Specifies what response metadata should include.
state query array[string] false Filter results by one or many package types
type query array[string] false Filter results by one or many package types
search query string false Full text search on package name
event_id query string false Event ID which is bound to the package

Detailed descriptions

order_by: Specifies the result ordering

page_size: Maximum number of records to return. Must be between 1 and 100

page_token: Token used for cursor pagination. Cannot be used together with page_offset.

page_offset: Offset from where to start returning data. Cannot be used together with page_token.

includes: Specifies what response metadata should include. e.g. when 'INCLUDE_TOTAL_SIZE' is passed, response metadata will include total size of the result

state: Filter results by one or many package types

type: Filter results by one or many package types

Enumerated Values

Parameter Value
order_by ORDER_UNSPECIFIED
order_by ORDER_CREATE_TIME_ASC
order_by ORDER_CREATE_TIME_DESC
includes INCLUDE_UNSPECIFIED
includes INCLUDE_TOTAL_SIZE
state STATE_UNSPECIFIED
state STATE_HIDDEN
state STATE_UNLISTED
state STATE_PUBLISHED
type TYPE_UNSPECIFIED
type TYPE_BUNDLE
type TYPE_SUBSCRIPTION
type TYPE_TIMEPASS
type TYPE_PPV

Example responses

200 Response

{
  "next_page_token": "string",
  "packages": [
    {
      "apple_app_store_product_id": "string",
      "concurrency_limit": 0,
      "contents": [
        {
          "id": "string",
          "priority": 0,
          "type": "string"
        }
      ],
      "create_time": "2019-08-24T14:15:22Z",
      "description": "string",
      "end_time": "2019-08-24T14:15:22Z",
      "google_play_sku": "string",
      "hero_image_asset_id": "string",
      "id": "string",
      "is_geoblocked": true,
      "locale_overrides": [
        {
          "description": "string",
          "language_code": "string",
          "name": "string",
          "short_name": "string"
        }
      ],
      "logo_asset_id": "string",
      "name": "string",
      "price": {
        "currency_code": "string",
        "nanos": 0,
        "units": "string"
      },
      "price_msrp": {
        "currency_code": "string",
        "nanos": 0,
        "units": "string"
      },
      "price_per_item": {
        "currency_code": "string",
        "nanos": 0,
        "units": "string"
      },
      "priority": 0,
      "short_name": "string",
      "start_time": "2019-08-24T14:15:22Z",
      "state": "STATE_UNSPECIFIED",
      "term": {
        "factor": 0,
        "period": "CALENDAR_PERIOD_UNSPECIFIED"
      },
      "type": "TYPE_UNSPECIFIED"
    }
  ],
  "total_size": 0
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.subscriptions.v1beta1.ListPackagesResponse
default Default An unexpected error response. google.rpc.Status

Create package

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.post('https://mcls-api.mycujoo.tv/subscriptions/v1beta1/packages', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/subscriptions/v1beta1/packages", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/subscriptions/v1beta1/packages HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "apple_app_store_product_id": "string",
  "concurrency_limit": 0,
  "contents": [
    {
      "id": "string",
      "priority": 0,
      "type": "string"
    }
  ],
  "description": "string",
  "end_time": "2019-08-24T14:15:22Z",
  "google_play_sku": "string",
  "hero_image_asset_id": "string",
  "is_geoblocked": true,
  "locale_overrides": [
    {
      "description": "string",
      "language_code": "string",
      "name": "string",
      "short_name": "string"
    }
  ],
  "logo_asset_id": "string",
  "name": "string",
  "price": {
    "currency_code": "string",
    "nanos": 0,
    "units": "string"
  },
  "price_msrp": {
    "currency_code": "string",
    "nanos": 0,
    "units": "string"
  },
  "price_per_item": {
    "currency_code": "string",
    "nanos": 0,
    "units": "string"
  },
  "priority": 0,
  "short_name": "string",
  "start_time": "2019-08-24T14:15:22Z",
  "state": "STATE_UNSPECIFIED",
  "term": {
    "factor": 0,
    "period": "CALENDAR_PERIOD_UNSPECIFIED"
  },
  "type": "TYPE_UNSPECIFIED"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/subscriptions/v1beta1/packages',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "apple_app_store_product_id": "string",
  "concurrency_limit": 0,
  "contents": [
    {
      "id": "string",
      "priority": 0,
      "type": "string"
    }
  ],
  "description": "string",
  "end_time": "2019-08-24T14:15:22Z",
  "google_play_sku": "string",
  "hero_image_asset_id": "string",
  "is_geoblocked": true,
  "locale_overrides": [
    {
      "description": "string",
      "language_code": "string",
      "name": "string",
      "short_name": "string"
    }
  ],
  "logo_asset_id": "string",
  "name": "string",
  "price": {
    "currency_code": "string",
    "nanos": 0,
    "units": "string"
  },
  "price_msrp": {
    "currency_code": "string",
    "nanos": 0,
    "units": "string"
  },
  "price_per_item": {
    "currency_code": "string",
    "nanos": 0,
    "units": "string"
  },
  "priority": 0,
  "short_name": "string",
  "start_time": "2019-08-24T14:15:22Z",
  "state": "STATE_UNSPECIFIED",
  "term": {
    "factor": 0,
    "period": "CALENDAR_PERIOD_UNSPECIFIED"
  },
  "type": "TYPE_UNSPECIFIED"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/subscriptions/v1beta1/packages',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /subscriptions/v1beta1/packages

Body parameter

{
  "apple_app_store_product_id": "string",
  "concurrency_limit": 0,
  "contents": [
    {
      "id": "string",
      "priority": 0,
      "type": "string"
    }
  ],
  "description": "string",
  "end_time": "2019-08-24T14:15:22Z",
  "google_play_sku": "string",
  "hero_image_asset_id": "string",
  "is_geoblocked": true,
  "locale_overrides": [
    {
      "description": "string",
      "language_code": "string",
      "name": "string",
      "short_name": "string"
    }
  ],
  "logo_asset_id": "string",
  "name": "string",
  "price": {
    "currency_code": "string",
    "nanos": 0,
    "units": "string"
  },
  "price_msrp": {
    "currency_code": "string",
    "nanos": 0,
    "units": "string"
  },
  "price_per_item": {
    "currency_code": "string",
    "nanos": 0,
    "units": "string"
  },
  "priority": 0,
  "short_name": "string",
  "start_time": "2019-08-24T14:15:22Z",
  "state": "STATE_UNSPECIFIED",
  "term": {
    "factor": 0,
    "period": "CALENDAR_PERIOD_UNSPECIFIED"
  },
  "type": "TYPE_UNSPECIFIED"
}

Parameters

Name In Type Required Description
body body mycujoo.subscriptions.v1beta1.CreatePackageRequest true none

Example responses

200 Response

{
  "apple_app_store_product_id": "string",
  "concurrency_limit": 0,
  "contents": [
    {
      "id": "string",
      "priority": 0,
      "type": "string"
    }
  ],
  "create_time": "2019-08-24T14:15:22Z",
  "description": "string",
  "end_time": "2019-08-24T14:15:22Z",
  "google_play_sku": "string",
  "hero_image_asset_id": "string",
  "id": "string",
  "is_geoblocked": true,
  "locale_overrides": [
    {
      "description": "string",
      "language_code": "string",
      "name": "string",
      "short_name": "string"
    }
  ],
  "logo_asset_id": "string",
  "name": "string",
  "price": {
    "currency_code": "string",
    "nanos": 0,
    "units": "string"
  },
  "price_msrp": {
    "currency_code": "string",
    "nanos": 0,
    "units": "string"
  },
  "price_per_item": {
    "currency_code": "string",
    "nanos": 0,
    "units": "string"
  },
  "priority": 0,
  "short_name": "string",
  "start_time": "2019-08-24T14:15:22Z",
  "state": "STATE_UNSPECIFIED",
  "term": {
    "factor": 0,
    "period": "CALENDAR_PERIOD_UNSPECIFIED"
  },
  "type": "TYPE_UNSPECIFIED"
}

Responses

Status Meaning Description Schema
200 OK Created package mycujoo.subscriptions.v1beta1.Package
default Default An unexpected error response. google.rpc.Status

Batch Get package

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.post('https://mcls-api.mycujoo.tv/subscriptions/v1beta1/packages/batch', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/subscriptions/v1beta1/packages/batch", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/subscriptions/v1beta1/packages/batch HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "ids": [
    "string"
  ]
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/subscriptions/v1beta1/packages/batch',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "ids": [
    "string"
  ]
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/subscriptions/v1beta1/packages/batch',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /subscriptions/v1beta1/packages/batch

Body parameter

{
  "ids": [
    "string"
  ]
}

Parameters

Name In Type Required Description
body body mycujoo.subscriptions.v1beta1.BatchGetPackagesRequest true none

Example responses

200 Response

{
  "packages": [
    {
      "apple_app_store_product_id": "string",
      "concurrency_limit": 0,
      "contents": [
        {
          "id": "string",
          "priority": 0,
          "type": "string"
        }
      ],
      "create_time": "2019-08-24T14:15:22Z",
      "description": "string",
      "end_time": "2019-08-24T14:15:22Z",
      "google_play_sku": "string",
      "hero_image_asset_id": "string",
      "id": "string",
      "is_geoblocked": true,
      "locale_overrides": [
        {
          "description": "string",
          "language_code": "string",
          "name": "string",
          "short_name": "string"
        }
      ],
      "logo_asset_id": "string",
      "name": "string",
      "price": {
        "currency_code": "string",
        "nanos": 0,
        "units": "string"
      },
      "price_msrp": {
        "currency_code": "string",
        "nanos": 0,
        "units": "string"
      },
      "price_per_item": {
        "currency_code": "string",
        "nanos": 0,
        "units": "string"
      },
      "priority": 0,
      "short_name": "string",
      "start_time": "2019-08-24T14:15:22Z",
      "state": "STATE_UNSPECIFIED",
      "term": {
        "factor": 0,
        "period": "CALENDAR_PERIOD_UNSPECIFIED"
      },
      "type": "TYPE_UNSPECIFIED"
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.subscriptions.v1beta1.BatchGetPackagesResponse
default Default An unexpected error response. google.rpc.Status

Get package

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/subscriptions/v1beta1/packages/{id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/subscriptions/v1beta1/packages/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/subscriptions/v1beta1/packages/{id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/subscriptions/v1beta1/packages/{id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/subscriptions/v1beta1/packages/{id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /subscriptions/v1beta1/packages/{id}

Parameters

Name In Type Required Description
id path string true ID of the package to retrieve

Example responses

200 Response

{
  "apple_app_store_product_id": "string",
  "concurrency_limit": 0,
  "contents": [
    {
      "id": "string",
      "priority": 0,
      "type": "string"
    }
  ],
  "create_time": "2019-08-24T14:15:22Z",
  "description": "string",
  "end_time": "2019-08-24T14:15:22Z",
  "google_play_sku": "string",
  "hero_image_asset_id": "string",
  "id": "string",
  "is_geoblocked": true,
  "locale_overrides": [
    {
      "description": "string",
      "language_code": "string",
      "name": "string",
      "short_name": "string"
    }
  ],
  "logo_asset_id": "string",
  "name": "string",
  "price": {
    "currency_code": "string",
    "nanos": 0,
    "units": "string"
  },
  "price_msrp": {
    "currency_code": "string",
    "nanos": 0,
    "units": "string"
  },
  "price_per_item": {
    "currency_code": "string",
    "nanos": 0,
    "units": "string"
  },
  "priority": 0,
  "short_name": "string",
  "start_time": "2019-08-24T14:15:22Z",
  "state": "STATE_UNSPECIFIED",
  "term": {
    "factor": 0,
    "period": "CALENDAR_PERIOD_UNSPECIFIED"
  },
  "type": "TYPE_UNSPECIFIED"
}

Responses

Status Meaning Description Schema
200 OK Returned package mycujoo.subscriptions.v1beta1.Package
default Default An unexpected error response. google.rpc.Status

Delete package

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.delete('https://mcls-api.mycujoo.tv/subscriptions/v1beta1/packages/{id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "https://mcls-api.mycujoo.tv/subscriptions/v1beta1/packages/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE https://mcls-api.mycujoo.tv/subscriptions/v1beta1/packages/{id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/subscriptions/v1beta1/packages/{id}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/subscriptions/v1beta1/packages/{id}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

DELETE /subscriptions/v1beta1/packages/{id}

Parameters

Name In Type Required Description
id path string true ID of the package to delete

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.subscriptions.v1beta1.DeletePackageResponse
default Default An unexpected error response. google.rpc.Status

Updates package

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.patch('https://mcls-api.mycujoo.tv/subscriptions/v1beta1/packages/{id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "https://mcls-api.mycujoo.tv/subscriptions/v1beta1/packages/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PATCH https://mcls-api.mycujoo.tv/subscriptions/v1beta1/packages/{id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "apple_app_store_product_id": "string",
  "concurrency_limit": 0,
  "contents": [
    {
      "id": "string",
      "priority": 0,
      "type": "string"
    }
  ],
  "description": "string",
  "end_time": "2019-08-24T14:15:22Z",
  "google_play_sku": "string",
  "hero_image_asset_id": "string",
  "is_geoblocked": true,
  "locale_overrides": [
    {
      "description": "string",
      "language_code": "string",
      "name": "string",
      "short_name": "string"
    }
  ],
  "logo_asset_id": "string",
  "name": "string",
  "price": {
    "currency_code": "string",
    "nanos": 0,
    "units": "string"
  },
  "price_msrp": {
    "currency_code": "string",
    "nanos": 0,
    "units": "string"
  },
  "price_per_item": {
    "currency_code": "string",
    "nanos": 0,
    "units": "string"
  },
  "priority": 0,
  "short_name": "string",
  "start_time": "2019-08-24T14:15:22Z",
  "state": "STATE_UNSPECIFIED",
  "term": {
    "factor": 0,
    "period": "CALENDAR_PERIOD_UNSPECIFIED"
  },
  "type": "TYPE_UNSPECIFIED"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/subscriptions/v1beta1/packages/{id}',
{
  method: 'PATCH',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "apple_app_store_product_id": "string",
  "concurrency_limit": 0,
  "contents": [
    {
      "id": "string",
      "priority": 0,
      "type": "string"
    }
  ],
  "description": "string",
  "end_time": "2019-08-24T14:15:22Z",
  "google_play_sku": "string",
  "hero_image_asset_id": "string",
  "is_geoblocked": true,
  "locale_overrides": [
    {
      "description": "string",
      "language_code": "string",
      "name": "string",
      "short_name": "string"
    }
  ],
  "logo_asset_id": "string",
  "name": "string",
  "price": {
    "currency_code": "string",
    "nanos": 0,
    "units": "string"
  },
  "price_msrp": {
    "currency_code": "string",
    "nanos": 0,
    "units": "string"
  },
  "price_per_item": {
    "currency_code": "string",
    "nanos": 0,
    "units": "string"
  },
  "priority": 0,
  "short_name": "string",
  "start_time": "2019-08-24T14:15:22Z",
  "state": "STATE_UNSPECIFIED",
  "term": {
    "factor": 0,
    "period": "CALENDAR_PERIOD_UNSPECIFIED"
  },
  "type": "TYPE_UNSPECIFIED"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/subscriptions/v1beta1/packages/{id}',
{
  method: 'PATCH',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PATCH /subscriptions/v1beta1/packages/{id}

Body parameter

{
  "apple_app_store_product_id": "string",
  "concurrency_limit": 0,
  "contents": [
    {
      "id": "string",
      "priority": 0,
      "type": "string"
    }
  ],
  "description": "string",
  "end_time": "2019-08-24T14:15:22Z",
  "google_play_sku": "string",
  "hero_image_asset_id": "string",
  "is_geoblocked": true,
  "locale_overrides": [
    {
      "description": "string",
      "language_code": "string",
      "name": "string",
      "short_name": "string"
    }
  ],
  "logo_asset_id": "string",
  "name": "string",
  "price": {
    "currency_code": "string",
    "nanos": 0,
    "units": "string"
  },
  "price_msrp": {
    "currency_code": "string",
    "nanos": 0,
    "units": "string"
  },
  "price_per_item": {
    "currency_code": "string",
    "nanos": 0,
    "units": "string"
  },
  "priority": 0,
  "short_name": "string",
  "start_time": "2019-08-24T14:15:22Z",
  "state": "STATE_UNSPECIFIED",
  "term": {
    "factor": 0,
    "period": "CALENDAR_PERIOD_UNSPECIFIED"
  },
  "type": "TYPE_UNSPECIFIED"
}

Parameters

Name In Type Required Description
id path string true none
body body mycujoo.subscriptions.v1beta1.UpdatePackageRequest.UpdateFields true none

Example responses

200 Response

{
  "apple_app_store_product_id": "string",
  "concurrency_limit": 0,
  "contents": [
    {
      "id": "string",
      "priority": 0,
      "type": "string"
    }
  ],
  "create_time": "2019-08-24T14:15:22Z",
  "description": "string",
  "end_time": "2019-08-24T14:15:22Z",
  "google_play_sku": "string",
  "hero_image_asset_id": "string",
  "id": "string",
  "is_geoblocked": true,
  "locale_overrides": [
    {
      "description": "string",
      "language_code": "string",
      "name": "string",
      "short_name": "string"
    }
  ],
  "logo_asset_id": "string",
  "name": "string",
  "price": {
    "currency_code": "string",
    "nanos": 0,
    "units": "string"
  },
  "price_msrp": {
    "currency_code": "string",
    "nanos": 0,
    "units": "string"
  },
  "price_per_item": {
    "currency_code": "string",
    "nanos": 0,
    "units": "string"
  },
  "priority": 0,
  "short_name": "string",
  "start_time": "2019-08-24T14:15:22Z",
  "state": "STATE_UNSPECIFIED",
  "term": {
    "factor": 0,
    "period": "CALENDAR_PERIOD_UNSPECIFIED"
  },
  "type": "TYPE_UNSPECIFIED"
}

Responses

Status Meaning Description Schema
200 OK Updated package mycujoo.subscriptions.v1beta1.Package
default Default An unexpected error response. google.rpc.Status

GetPackageIamPolicy

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/subscriptions/v1beta1/packages/{package_id}/iam_policy', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/subscriptions/v1beta1/packages/{package_id}/iam_policy", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/subscriptions/v1beta1/packages/{package_id}/iam_policy HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/subscriptions/v1beta1/packages/{package_id}/iam_policy',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/subscriptions/v1beta1/packages/{package_id}/iam_policy',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /subscriptions/v1beta1/packages/{package_id}/iam_policy

Parameters

Name In Type Required Description
package_id path string true none

Example responses

200 Response

{
  "etag": "string",
  "policy": {
    "bindings": [
      {
        "account_ids": [
          "2GzbST9DaEPsNcDTaW30GWnfZyw",
          "2GzbTHf7FfMyGv2F71FWwGRzKWb"
        ],
        "role_id": "owner"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "projects.admin"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "accounts.admin"
      }
    ]
  },
  "resource_hierarchy": [
    {
      "id": "elevendata",
      "type": "project"
    }
  ],
  "resource_title": "string"
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.subscriptions.v1beta1.GetPackageIamPolicyResponse
default Default An unexpected error response. google.rpc.Status

SetPackageIamPolicy

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.post('https://mcls-api.mycujoo.tv/subscriptions/v1beta1/packages/{package_id}/iam_policy', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/subscriptions/v1beta1/packages/{package_id}/iam_policy", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/subscriptions/v1beta1/packages/{package_id}/iam_policy HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "etag": "string",
  "policy": {
    "bindings": [
      {
        "account_ids": [
          "2GzbST9DaEPsNcDTaW30GWnfZyw",
          "2GzbTHf7FfMyGv2F71FWwGRzKWb"
        ],
        "role_id": "owner"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "projects.admin"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "accounts.admin"
      }
    ]
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/subscriptions/v1beta1/packages/{package_id}/iam_policy',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "etag": "string",
  "policy": {
    "bindings": [
      {
        "account_ids": [
          "2GzbST9DaEPsNcDTaW30GWnfZyw",
          "2GzbTHf7FfMyGv2F71FWwGRzKWb"
        ],
        "role_id": "owner"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "projects.admin"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "accounts.admin"
      }
    ]
  }
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/subscriptions/v1beta1/packages/{package_id}/iam_policy',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /subscriptions/v1beta1/packages/{package_id}/iam_policy

Body parameter

{
  "etag": "string",
  "policy": {
    "bindings": [
      {
        "account_ids": [
          "2GzbST9DaEPsNcDTaW30GWnfZyw",
          "2GzbTHf7FfMyGv2F71FWwGRzKWb"
        ],
        "role_id": "owner"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "projects.admin"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "accounts.admin"
      }
    ]
  }
}

Parameters

Name In Type Required Description
package_id path string true none
body body object true none
ยป etag body string(byte) false none
ยป policy body mycujoo.auth.v1.Policy true Authorization policy.
ยปยป bindings body [mycujoo.auth.v1.Binding] false List of bindings to the policy. If empty, the policy will not have any effect.
ยปยปยป account_ids body [string] false List of account identifiers (referencing mycujoo.accounts.v1.Account) that have the role.
ยปยปยป include_all_organization_accounts body boolean false If this is set to true then the role is granted to all accounts in the organization. It overrides the account_ids field.
ยปยปยป role_id body string false none

Detailed descriptions

ยปยป bindings: List of bindings to the policy. If empty, the policy will not have any effect. Total number of accounts referenced in the bindings should be up to 1500. If same account has multiple roles - it is counted multiple times.

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.subscriptions.v1beta1.SetPackageIamPolicyResponse
default Default An unexpected error response. google.rpc.Status

TestIamPermissions

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.post('https://mcls-api.mycujoo.tv/subscriptions/v1beta1/test_iam_permissions', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/subscriptions/v1beta1/test_iam_permissions", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/subscriptions/v1beta1/test_iam_permissions HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "permissions": [
    "projects.create",
    "projects.update",
    "projects.delete"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/subscriptions/v1beta1/test_iam_permissions',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "permissions": [
    "projects.create",
    "projects.update",
    "projects.delete"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/subscriptions/v1beta1/test_iam_permissions',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /subscriptions/v1beta1/test_iam_permissions

This method validates the current account given a list of permissions. Used for UI

Body parameter

{
  "permissions": [
    "projects.create",
    "projects.update",
    "projects.delete"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
}

Parameters

Name In Type Required Description
body body mycujoo.subscriptions.v1beta1.TestIamPermissionsRequest true none

Example responses

200 Response

{
  "permissions": [
    "projects.create",
    "projects.update"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.subscriptions.v1beta1.TestIamPermissionsResponse
default Default An unexpected error response. google.rpc.Status

ThumbnailService

Creates a single thumbnail from source

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.post('https://mcls-api.mycujoo.tv/thumbnails/v1/thumbnails', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/thumbnails/v1/thumbnails", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/thumbnails/v1/thumbnails HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "output_format": "OUTPUT_FORMAT_UNSPECIFIED",
  "position": "string",
  "stream_id": "string",
  "title": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/thumbnails/v1/thumbnails',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "output_format": "OUTPUT_FORMAT_UNSPECIFIED",
  "position": "string",
  "stream_id": "string",
  "title": "string"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/thumbnails/v1/thumbnails',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /thumbnails/v1/thumbnails

Creates a single thumbnail from video source

Body parameter

{
  "output_format": "OUTPUT_FORMAT_UNSPECIFIED",
  "position": "string",
  "stream_id": "string",
  "title": "string"
}

Parameters

Name In Type Required Description
body body mycujoo.thumbnails.v1.CreateThumbnailRequest true none

Example responses

200 Response

{
  "asset_id": "string",
  "create_time": "2019-08-24T14:15:22Z",
  "download_url": "string",
  "expiry_time": "2019-08-24T14:15:22Z",
  "filename": "string",
  "org_id": "string",
  "project_id": "string",
  "size_bytes": "string",
  "stream_id": "string"
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.thumbnails.v1.CreateThumbnailResponse
400 Bad Request Bad input parameters Inline
404 Not Found Source of the stream was not found Inline
500 Internal Server Error Internal Server Error Inline
default Default An unexpected error response. google.rpc.Status

Response Schema

TimelinesService

Returns a list of timelines

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/timelines/v1beta1', params={
  'stream_id': 'string'
}, headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/timelines/v1beta1", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/timelines/v1beta1?stream_id=string HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/timelines/v1beta1?stream_id=string',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/timelines/v1beta1?stream_id=string',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /timelines/v1beta1

List all the timelines for given organisation

Parameters

Name In Type Required Description
stream_id query string true Retrives all the timelines by specified stream ID

Example responses

200 Response

{
  "timelines": [
    {
      "create_time": "2019-08-24T14:15:22Z",
      "id": "string",
      "name": "string",
      "stream_id": "string",
      "type": "TYPE_SYSTEM"
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.timelines.v1beta1.ListResponse
default Default An unexpected error response. google.rpc.Status

Create

Creates the timeline in the system

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.post('https://mcls-api.mycujoo.tv/timelines/v1beta1', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/timelines/v1beta1", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/timelines/v1beta1 HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "name": "string",
  "stream_id": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/timelines/v1beta1',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "name": "string",
  "stream_id": "string"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/timelines/v1beta1',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /timelines/v1beta1

Creates the timeline in the system

Body parameter

{
  "name": "string",
  "stream_id": "string"
}

Parameters

Name In Type Required Description
body body mycujoo.timelines.v1beta1.CreateRequest true none

Example responses

200 Response

{
  "timeline": {
    "create_time": "2019-08-24T14:15:22Z",
    "id": "string",
    "name": "string",
    "stream_id": "string",
    "type": "TYPE_SYSTEM"
  }
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.timelines.v1beta1.CreateResponse
default Default An unexpected error response. google.rpc.Status

Returns a timeline by id

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/timelines/v1beta1/{id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/timelines/v1beta1/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/timelines/v1beta1/{id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/timelines/v1beta1/{id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/timelines/v1beta1/{id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /timelines/v1beta1/{id}

Get a timeline by id

Parameters

Name In Type Required Description
id path string true ID of the timeline to be retrieved

Example responses

200 Response

{
  "timeline": {
    "create_time": "2019-08-24T14:15:22Z",
    "id": "string",
    "name": "string",
    "stream_id": "string",
    "type": "TYPE_SYSTEM"
  }
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.timelines.v1beta1.GetResponse
default Default An unexpected error response. google.rpc.Status

Delete

Deletes the timeline from the system. System timelines cannot be deleted.

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.delete('https://mcls-api.mycujoo.tv/timelines/v1beta1/{id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "https://mcls-api.mycujoo.tv/timelines/v1beta1/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE https://mcls-api.mycujoo.tv/timelines/v1beta1/{id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/timelines/v1beta1/{id}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/timelines/v1beta1/{id}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

DELETE /timelines/v1beta1/{id}

Deletes the timeline from the system. System timelines cannot be deleted.

Parameters

Name In Type Required Description
id path string true ID of the timeline to be deleted

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.timelines.v1beta1.DeleteResponse
default Default An unexpected error response. google.rpc.Status

UserConsentService

Returns the requested list of documents with acceptance status regarding their latest versions

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.post('https://mcls-api.mycujoo.tv/userconsent/v1beta1/check_documents', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/userconsent/v1beta1/check_documents", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/userconsent/v1beta1/check_documents HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "ids": [
    "string"
  ]
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/userconsent/v1beta1/check_documents',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "ids": [
    "string"
  ]
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/userconsent/v1beta1/check_documents',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /userconsent/v1beta1/check_documents

Check if the user has accepted or not the latest version of each document from the list

Body parameter

{
  "ids": [
    "string"
  ]
}

Parameters

Name In Type Required Description
body body mycujoo.userconsent.v1beta1.CheckDocumentsRequest true none

Example responses

200 Response

{
  "documents": [
    {
      "acceptance_period_time": "2019-08-24T14:15:22Z",
      "accepted": true,
      "content_url": "string",
      "document_id": "string",
      "version_id": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.userconsent.v1beta1.CheckDocumentsResponse
default Default An unexpected error response. google.rpc.Status

Returns success status for documents acceptance

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.post('https://mcls-api.mycujoo.tv/userconsent/v1beta1/{document_id}/accept/{version_id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/userconsent/v1beta1/{document_id}/accept/{version_id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/userconsent/v1beta1/{document_id}/accept/{version_id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/userconsent/v1beta1/{document_id}/accept/{version_id}',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/userconsent/v1beta1/{document_id}/accept/{version_id}',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /userconsent/v1beta1/{document_id}/accept/{version_id}

Accepts the latest version of a document

Parameters

Name In Type Required Description
document_id path string true id of the document to be accepted
version_id path string true id of the version to be accepted

Example responses

200 Response

{
  "document_id": "string",
  "version_id": "string"
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.userconsent.v1beta1.AcceptDocumentResponse
default Default An unexpected error response. google.rpc.Status

Returns the updated version content for a document

Code samples

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('https://mcls-api.mycujoo.tv/userconsent/v1beta1/{document_id}/content', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/userconsent/v1beta1/{document_id}/content", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/userconsent/v1beta1/{document_id}/content HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/userconsent/v1beta1/{document_id}/content',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/userconsent/v1beta1/{document_id}/content',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /userconsent/v1beta1/{document_id}/content

Get the latest content version of a document

Parameters

Name In Type Required Description
document_id path string true id of the document to retrieve
lang query string false language of preference for the document. Examples: "en", "es", "pt", "pt-br"

Example responses

200 Response

{
  "content_html": "string",
  "content_url": "string"
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.userconsent.v1beta1.GetDocumentContentResponse
default Default An unexpected error response. google.rpc.Status

UserdataActionService

UserdataActionService_Create

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

r = requests.post('https://mcls-api.mycujoo.tv/userdataaction/v1beta1/{action_call_id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/userdataaction/v1beta1/{action_call_id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/userdataaction/v1beta1/{action_call_id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "bool": true,
  "float": 0.1,
  "int": 0,
  "string": "string",
  "timestamp": "2019-08-24T14:15:22Z"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/userdataaction/v1beta1/{action_call_id}',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "bool": true,
  "float": 0.1,
  "int": 0,
  "string": "string",
  "timestamp": "2019-08-24T14:15:22Z"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/userdataaction/v1beta1/{action_call_id}',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /userdataaction/v1beta1/{action_call_id}

Body parameter

{
  "bool": true,
  "float": 0.1,
  "int": 0,
  "string": "string",
  "timestamp": "2019-08-24T14:15:22Z"
}

Parameters

Name In Type Required Description
action_call_id path string true none
body body mycujoo.userdataaction.v1beta1.Value true none

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.userdataaction.v1beta1.CreateResponse
default Default An unexpected error response. google.rpc.Status

UserdataActionService_Update

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

r = requests.patch('https://mcls-api.mycujoo.tv/userdataaction/v1beta1/{action_call_id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "https://mcls-api.mycujoo.tv/userdataaction/v1beta1/{action_call_id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PATCH https://mcls-api.mycujoo.tv/userdataaction/v1beta1/{action_call_id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "bool": true,
  "float": 0.1,
  "int": 0,
  "string": "string",
  "timestamp": "2019-08-24T14:15:22Z"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/userdataaction/v1beta1/{action_call_id}',
{
  method: 'PATCH',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "bool": true,
  "float": 0.1,
  "int": 0,
  "string": "string",
  "timestamp": "2019-08-24T14:15:22Z"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'
};

fetch('https://mcls-api.mycujoo.tv/userdataaction/v1beta1/{action_call_id}',
{
  method: 'PATCH',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PATCH /userdataaction/v1beta1/{action_call_id}

Body parameter

{
  "bool": true,
  "float": 0.1,
  "int": 0,
  "string": "string",
  "timestamp": "2019-08-24T14:15:22Z"
}

Parameters

Name In Type Required Description
action_call_id path string true none
body body mycujoo.userdataaction.v1beta1.Value true none

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.userdataaction.v1beta1.UpdateResponse
default Default An unexpected error response. google.rpc.Status

VideostitchingService

Update a videostitching job

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.put('https://mcls-api.mycujoo.tv/stitcher/v1/jobs/{id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "https://mcls-api.mycujoo.tv/stitcher/v1/jobs/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT https://mcls-api.mycujoo.tv/stitcher/v1/jobs/{id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "inputs": [
    {
      "asset": {
        "asset_id": "string",
        "end_offset": "string",
        "start_offset": "string"
      },
      "clip": {
        "clip_id": "string",
        "end_offset": "string",
        "start_offset": "string"
      },
      "stream": {
        "end_offset": "string",
        "resource_type": "STREAM_RESOURCE_TYPE_UNSPECIFIED",
        "start_offset": "string",
        "stream_id": "string"
      }
    }
  ],
  "outputs": [
    {
      "asset": {
        "config": {
          "transcoding_settings_id": "string",
          "video_representation_id": "string",
          "watermark_id": "string"
        },
        "labels": {
          "property1": "string",
          "property2": "string"
        },
        "title": "string"
      },
      "stream": {
        "stream_id": "string"
      }
    }
  ],
  "title": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/stitcher/v1/jobs/{id}',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "inputs": [
    {
      "asset": {
        "asset_id": "string",
        "end_offset": "string",
        "start_offset": "string"
      },
      "clip": {
        "clip_id": "string",
        "end_offset": "string",
        "start_offset": "string"
      },
      "stream": {
        "end_offset": "string",
        "resource_type": "STREAM_RESOURCE_TYPE_UNSPECIFIED",
        "start_offset": "string",
        "stream_id": "string"
      }
    }
  ],
  "outputs": [
    {
      "asset": {
        "config": {
          "transcoding_settings_id": "string",
          "video_representation_id": "string",
          "watermark_id": "string"
        },
        "labels": {
          "property1": "string",
          "property2": "string"
        },
        "title": "string"
      },
      "stream": {
        "stream_id": "string"
      }
    }
  ],
  "title": "string"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/stitcher/v1/jobs/{id}',
{
  method: 'PUT',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PUT /stitcher/v1/jobs/{id}

Updates an existing videostitching job

Body parameter

{
  "inputs": [
    {
      "asset": {
        "asset_id": "string",
        "end_offset": "string",
        "start_offset": "string"
      },
      "clip": {
        "clip_id": "string",
        "end_offset": "string",
        "start_offset": "string"
      },
      "stream": {
        "end_offset": "string",
        "resource_type": "STREAM_RESOURCE_TYPE_UNSPECIFIED",
        "start_offset": "string",
        "stream_id": "string"
      }
    }
  ],
  "outputs": [
    {
      "asset": {
        "config": {
          "transcoding_settings_id": "string",
          "video_representation_id": "string",
          "watermark_id": "string"
        },
        "labels": {
          "property1": "string",
          "property2": "string"
        },
        "title": "string"
      },
      "stream": {
        "stream_id": "string"
      }
    }
  ],
  "title": "string"
}

Parameters

Name In Type Required Description
id path string true ID of the videostitching job
body body object true none
ยป inputs body [mycujoo.videostitching.v1.Input] true none
ยปยป Input of the videostitching job body mycujoo.videostitching.v1.Input false none
ยปยปยป asset body mycujoo.videostitching.v1.AssetInput false none
ยปยปยปยป asset_id body string true none
ยปยปยปยป end_offset body string false none
ยปยปยปยป start_offset body string false none
ยปยปยป clip body mycujoo.videostitching.v1.ClipInput false none
ยปยปยปยป clip_id body string true none
ยปยปยปยป end_offset body string false none
ยปยปยปยป start_offset body string false none
ยปยปยป stream body mycujoo.videostitching.v1.StreamInput false none
ยปยปยปยป end_offset body string false none
ยปยปยปยป resource_type body mycujoo.videostitching.v1.StreamResourceType false - STREAM_RESOURCE_TYPE_PLAYLIST_TRANSCODED_HLS: Type playlist_transcoded_hls will select the transcoded hls playlist of provided stream
ยปยปยปยป start_offset body string false none
ยปยปยปยป stream_id body string true none
ยป outputs body [mycujoo.videostitching.v1.RequestedOutput] true none
ยปยป Desired output of video stitching body mycujoo.videostitching.v1.RequestedOutput false none
ยปยปยป asset body mycujoo.videostitching.v1.RequestedAssetOutput false none
ยปยปยปยป config body mycujoo.videostitching.v1.RequestedAssetOutputConfig false none
ยปยปยปยปยป transcoding_settings_id body string false none
ยปยปยปยปยป video_representation_id body string false none
ยปยปยปยปยป watermark_id body string false none
ยปยปยปยป labels body object false none
ยปยปยปยปยป additionalProperties body string false none
ยปยปยปยป title body string false none
ยปยปยป stream body mycujoo.videostitching.v1.RequestedStreamOutput false none
ยปยปยปยป stream_id body string false none
ยป title body string false Title of the job. If this field is empty, a random title will be set.

Detailed descriptions

ยปยปยปยป resource_type: - STREAM_RESOURCE_TYPE_PLAYLIST_TRANSCODED_HLS: Type playlist_transcoded_hls will select the transcoded hls playlist of provided stream - STREAM_RESOURCE_TYPE_CLIPS: Type clips will select all clips of provided stream (clips that are all children of this particular stream)

Enumerated Values

Parameter Value
ยปยปยปยป resource_type STREAM_RESOURCE_TYPE_UNSPECIFIED
ยปยปยปยป resource_type STREAM_RESOURCE_TYPE_PLAYLIST_TRANSCODED_HLS
ยปยปยปยป resource_type STREAM_RESOURCE_TYPE_CLIPS

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.videostitching.v1.UpdateJobResponse
400 Bad Request Bad input parameters Inline
404 Not Found Videostitching job was not found Inline
409 Conflict Videostitching job is already running Inline
500 Internal Server Error Internal Server Error Inline
default Default An unexpected error response. google.rpc.Status

Response Schema

Cancel a videostitching job

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.put('https://mcls-api.mycujoo.tv/stitcher/v1/jobs/{id}/cancel', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "https://mcls-api.mycujoo.tv/stitcher/v1/jobs/{id}/cancel", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT https://mcls-api.mycujoo.tv/stitcher/v1/jobs/{id}/cancel HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/stitcher/v1/jobs/{id}/cancel',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/stitcher/v1/jobs/{id}/cancel',
{
  method: 'PUT',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PUT /stitcher/v1/jobs/{id}/cancel

Cancels an existing videostitching job and its outputs

Body parameter

{}

Parameters

Name In Type Required Description
id path string true ID of the videostitching job
body body object true none

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.videostitching.v1.CancelJobResponse
400 Bad Request Bad input parameters Inline
404 Not Found Videostitching job was not found Inline
409 Conflict Videostitching job is already cancelled Inline
418 I'm a teapot Videostitching job is already done Inline
500 Internal Server Error Internal Server Error Inline
default Default An unexpected error response. google.rpc.Status

Response Schema

VideostitchingService_CancelOutputJob

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.put('https://mcls-api.mycujoo.tv/stitcher/v1/jobs/{id}/outputs/{output_id}/cancel', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "https://mcls-api.mycujoo.tv/stitcher/v1/jobs/{id}/outputs/{output_id}/cancel", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT https://mcls-api.mycujoo.tv/stitcher/v1/jobs/{id}/outputs/{output_id}/cancel HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/stitcher/v1/jobs/{id}/outputs/{output_id}/cancel',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/stitcher/v1/jobs/{id}/outputs/{output_id}/cancel',
{
  method: 'PUT',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PUT /stitcher/v1/jobs/{id}/outputs/{output_id}/cancel

Cancels an existing videostitching output job

Body parameter

{}

Parameters

Name In Type Required Description
id path string true ID of the videostitching job
output_id path string true ID of the output
body body object true none

Example responses

200 Response

{
  "id": "string"
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.videostitching.v1.CancelOutputJobResponse
400 Bad Request Bad input parameters Inline
404 Not Found Videostitching job was not found Inline
409 Conflict Videostitching job is already cancelled Inline
418 I'm a teapot Output job is already done Inline
500 Internal Server Error Internal Server Error Inline
default Default An unexpected error response. google.rpc.Status

Response Schema

Start a Job

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.post('https://mcls-api.mycujoo.tv/stitcher/v1/jobs/{id}/start', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/stitcher/v1/jobs/{id}/start", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/stitcher/v1/jobs/{id}/start HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/stitcher/v1/jobs/{id}/start',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/stitcher/v1/jobs/{id}/start',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /stitcher/v1/jobs/{id}/start

Starts an existing videostitching job

Body parameter

{}

Parameters

Name In Type Required Description
id path string true Id of the videostitching
body body object true none

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.videostitching.v1.StartJobResponse
400 Bad Request Bad input parameters Inline
404 Not Found Videostitching job was not found Inline
409 Conflict Videostitching job is already running Inline
500 Internal Server Error Internal Server Error Inline
default Default An unexpected error response. google.rpc.Status

Response Schema

Get a Job

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/stitcher/v1/jobs/{job_id}', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/stitcher/v1/jobs/{job_id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/stitcher/v1/jobs/{job_id} HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/stitcher/v1/jobs/{job_id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/stitcher/v1/jobs/{job_id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /stitcher/v1/jobs/{job_id}

Returns a videostitching job by its id

Parameters

Name In Type Required Description
job_id path string true Id of the project

Example responses

200 Response

{
  "job": {
    "create_time": "2019-08-24T14:15:22Z",
    "id": "string",
    "inputs": [
      {
        "asset": {
          "asset_id": "string",
          "end_offset": "string",
          "start_offset": "string"
        },
        "clip": {
          "clip_id": "string",
          "end_offset": "string",
          "start_offset": "string"
        },
        "stream": {
          "end_offset": "string",
          "resource_type": "STREAM_RESOURCE_TYPE_UNSPECIFIED",
          "start_offset": "string",
          "stream_id": "string"
        }
      }
    ],
    "org_id": "string",
    "outputs": [
      {
        "asset": {
          "asset_id": "string",
          "transcoding_settings": {
            "audio_bitrate": 32,
            "follow_source_fps": true,
            "gop": 25,
            "id": "string",
            "interlacing_filter_mode": "INTERLACING_FILTER_MODE_UNSPECIFIED",
            "key_frame_interval": 1,
            "level": 0.1,
            "profile": "TRANSCODING_PROFILE_UNSPECIFIED"
          },
          "video_representation": {
            "bitrate": 100,
            "framerate": 24,
            "height": 240,
            "id": "string",
            "width": 320
          },
          "watermark": {
            "height": 0,
            "id": "string",
            "position_preset": "POSITION_UNSPECIFIED",
            "url": "string",
            "width": 0
          }
        },
        "last_execution_time": "2019-08-24T14:15:22Z",
        "output_id": "string",
        "output_status": "OUTPUT_STATUS_UNSPECIFIED",
        "stream": {
          "stream_id": "string"
        }
      }
    ],
    "project_id": "string",
    "status": "JOB_STATUS_UNSPECIFIED",
    "title": "string",
    "update_time": "2019-08-24T14:15:22Z"
  }
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.videostitching.v1.GetJobResponse
404 Not Found Job not found Inline
500 Internal Server Error Internal Server Error Inline
default Default An unexpected error response. google.rpc.Status

Response Schema

List Jobs

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/videostitching/v1/jobs', params={
  'page_size': '0'
}, headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/videostitching/v1/jobs", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/videostitching/v1/jobs?page_size=0 HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/videostitching/v1/jobs?page_size=0',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/videostitching/v1/jobs?page_size=0',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /videostitching/v1/jobs

Lists all videostitching jobs

Parameters

Name In Type Required Description
page_size query integer(int32) true Maximum number of records to return.
page_token query string false The pagination token from the List request.
filter query string false Filter

Example responses

200 Response

{
  "jobs": [
    {
      "create_time": "2019-08-24T14:15:22Z",
      "id": "string",
      "inputs": [
        {
          "asset": {
            "asset_id": "string",
            "end_offset": "string",
            "start_offset": "string"
          },
          "clip": {
            "clip_id": "string",
            "end_offset": "string",
            "start_offset": "string"
          },
          "stream": {
            "end_offset": "string",
            "resource_type": "STREAM_RESOURCE_TYPE_UNSPECIFIED",
            "start_offset": "string",
            "stream_id": "string"
          }
        }
      ],
      "org_id": "string",
      "outputs": [
        {
          "asset": {
            "asset_id": "string",
            "transcoding_settings": {
              "audio_bitrate": 32,
              "follow_source_fps": true,
              "gop": 25,
              "id": "string",
              "interlacing_filter_mode": "INTERLACING_FILTER_MODE_UNSPECIFIED",
              "key_frame_interval": 1,
              "level": 0.1,
              "profile": "TRANSCODING_PROFILE_UNSPECIFIED"
            },
            "video_representation": {
              "bitrate": 100,
              "framerate": 24,
              "height": 240,
              "id": "string",
              "width": 320
            },
            "watermark": {
              "height": 0,
              "id": "string",
              "position_preset": "POSITION_UNSPECIFIED",
              "url": "string",
              "width": 0
            }
          },
          "last_execution_time": "2019-08-24T14:15:22Z",
          "output_id": "string",
          "output_status": "OUTPUT_STATUS_UNSPECIFIED",
          "stream": {
            "stream_id": "string"
          }
        }
      ],
      "project_id": "string",
      "status": "JOB_STATUS_UNSPECIFIED",
      "title": "string",
      "update_time": "2019-08-24T14:15:22Z"
    }
  ],
  "next_page_token": "string"
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.videostitching.v1.ListJobsResponse
500 Internal Server Error Internal Server Error Inline
default Default An unexpected error response. google.rpc.Status

Response Schema

Create a Job

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.post('https://mcls-api.mycujoo.tv/videostitching/v1/jobs', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/videostitching/v1/jobs", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/videostitching/v1/jobs HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "inputs": [
    {
      "asset": {
        "asset_id": "string",
        "end_offset": "string",
        "start_offset": "string"
      },
      "clip": {
        "clip_id": "string",
        "end_offset": "string",
        "start_offset": "string"
      },
      "stream": {
        "end_offset": "string",
        "resource_type": "STREAM_RESOURCE_TYPE_UNSPECIFIED",
        "start_offset": "string",
        "stream_id": "string"
      }
    }
  ],
  "outputs": [
    {
      "asset": {
        "config": {
          "transcoding_settings_id": "string",
          "video_representation_id": "string",
          "watermark_id": "string"
        },
        "labels": {
          "property1": "string",
          "property2": "string"
        },
        "title": "string"
      },
      "stream": {
        "stream_id": "string"
      }
    }
  ],
  "project_id": "string",
  "start_immediately": true,
  "title": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/videostitching/v1/jobs',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "inputs": [
    {
      "asset": {
        "asset_id": "string",
        "end_offset": "string",
        "start_offset": "string"
      },
      "clip": {
        "clip_id": "string",
        "end_offset": "string",
        "start_offset": "string"
      },
      "stream": {
        "end_offset": "string",
        "resource_type": "STREAM_RESOURCE_TYPE_UNSPECIFIED",
        "start_offset": "string",
        "stream_id": "string"
      }
    }
  ],
  "outputs": [
    {
      "asset": {
        "config": {
          "transcoding_settings_id": "string",
          "video_representation_id": "string",
          "watermark_id": "string"
        },
        "labels": {
          "property1": "string",
          "property2": "string"
        },
        "title": "string"
      },
      "stream": {
        "stream_id": "string"
      }
    }
  ],
  "project_id": "string",
  "start_immediately": true,
  "title": "string"
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/videostitching/v1/jobs',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /videostitching/v1/jobs

Creates a new videostitching job

Body parameter

{
  "inputs": [
    {
      "asset": {
        "asset_id": "string",
        "end_offset": "string",
        "start_offset": "string"
      },
      "clip": {
        "clip_id": "string",
        "end_offset": "string",
        "start_offset": "string"
      },
      "stream": {
        "end_offset": "string",
        "resource_type": "STREAM_RESOURCE_TYPE_UNSPECIFIED",
        "start_offset": "string",
        "stream_id": "string"
      }
    }
  ],
  "outputs": [
    {
      "asset": {
        "config": {
          "transcoding_settings_id": "string",
          "video_representation_id": "string",
          "watermark_id": "string"
        },
        "labels": {
          "property1": "string",
          "property2": "string"
        },
        "title": "string"
      },
      "stream": {
        "stream_id": "string"
      }
    }
  ],
  "project_id": "string",
  "start_immediately": true,
  "title": "string"
}

Parameters

Name In Type Required Description
body body mycujoo.videostitching.v1.CreateJobRequest true none

Example responses

200 Response

{
  "job": {
    "create_time": "2019-08-24T14:15:22Z",
    "id": "string",
    "inputs": [
      {
        "asset": {
          "asset_id": "string",
          "end_offset": "string",
          "start_offset": "string"
        },
        "clip": {
          "clip_id": "string",
          "end_offset": "string",
          "start_offset": "string"
        },
        "stream": {
          "end_offset": "string",
          "resource_type": "STREAM_RESOURCE_TYPE_UNSPECIFIED",
          "start_offset": "string",
          "stream_id": "string"
        }
      }
    ],
    "org_id": "string",
    "outputs": [
      {
        "asset": {
          "asset_id": "string",
          "transcoding_settings": {
            "audio_bitrate": 32,
            "follow_source_fps": true,
            "gop": 25,
            "id": "string",
            "interlacing_filter_mode": "INTERLACING_FILTER_MODE_UNSPECIFIED",
            "key_frame_interval": 1,
            "level": 0.1,
            "profile": "TRANSCODING_PROFILE_UNSPECIFIED"
          },
          "video_representation": {
            "bitrate": 100,
            "framerate": 24,
            "height": 240,
            "id": "string",
            "width": 320
          },
          "watermark": {
            "height": 0,
            "id": "string",
            "position_preset": "POSITION_UNSPECIFIED",
            "url": "string",
            "width": 0
          }
        },
        "last_execution_time": "2019-08-24T14:15:22Z",
        "output_id": "string",
        "output_status": "OUTPUT_STATUS_UNSPECIFIED",
        "stream": {
          "stream_id": "string"
        }
      }
    ],
    "project_id": "string",
    "status": "JOB_STATUS_UNSPECIFIED",
    "title": "string",
    "update_time": "2019-08-24T14:15:22Z"
  }
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.videostitching.v1.CreateJobResponse
400 Bad Request Bad input parameters Inline
404 Not Found Input source was not found Inline
409 Conflict Video stitcher job already exists Inline
500 Internal Server Error Internal Server Error Inline
default Default An unexpected error response. google.rpc.Status

Response Schema

Retry a single output job

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.post('https://mcls-api.mycujoo.tv/videostitching/v1/jobs/{job_id}/outputs/{output_id}/retry', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/videostitching/v1/jobs/{job_id}/outputs/{output_id}/retry", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/videostitching/v1/jobs/{job_id}/outputs/{output_id}/retry HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "force": true
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/videostitching/v1/jobs/{job_id}/outputs/{output_id}/retry',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "force": true
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/videostitching/v1/jobs/{job_id}/outputs/{output_id}/retry',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /videostitching/v1/jobs/{job_id}/outputs/{output_id}/retry

Retries a single output job

Body parameter

{
  "force": true
}

Parameters

Name In Type Required Description
job_id path string true Id of the job
output_id path string true Id of the output
body body object true none
ยป force body boolean false none

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.videostitching.v1.RetryOutputJobResponse
400 Bad Request Bad input parameters Inline
404 Not Found Output was not found Inline
409 Conflict The output is already being processed Inline
500 Internal Server Error Internal Server Error Inline
default Default An unexpected error response. google.rpc.Status

Response Schema

Retry a Job

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.post('https://mcls-api.mycujoo.tv/videostitching/v1/jobs/{job_id}/retry', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/videostitching/v1/jobs/{job_id}/retry", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/videostitching/v1/jobs/{job_id}/retry HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json
Accept: application/json

const inputBody = '{
  "force": true
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/videostitching/v1/jobs/{job_id}/retry',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "force": true
};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/videostitching/v1/jobs/{job_id}/retry',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /videostitching/v1/jobs/{job_id}/retry

Retries a job and its outputs

Body parameter

{
  "force": true
}

Parameters

Name In Type Required Description
job_id path string true Id of the job
body body object true none
ยป force body boolean false none

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.videostitching.v1.RetryJobResponse
400 Bad Request Bad input parameters Inline
404 Not Found Output was not found Inline
409 Conflict The job is already being processed Inline
500 Internal Server Error Internal Server Error Inline
default Default An unexpected error response. google.rpc.Status

Response Schema

List Transcoding Settings

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/videostitching/v1/transcoding_settings', params={
  'page_size': '0'
}, headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/videostitching/v1/transcoding_settings", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/videostitching/v1/transcoding_settings?page_size=0 HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/videostitching/v1/transcoding_settings?page_size=0',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/videostitching/v1/transcoding_settings?page_size=0',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /videostitching/v1/transcoding_settings

Lists avaliable transcoding settings

Parameters

Name In Type Required Description
page_size query integer(int32) true Maximum number of records to return.
page_token query string false The pagination token from the List request.
filter query string false Filter

Example responses

200 Response

{
  "next_page_token": "string",
  "transcoding_settings": [
    {
      "audio_bitrate": 32,
      "follow_source_fps": true,
      "gop": 25,
      "id": "string",
      "interlacing_filter_mode": "INTERLACING_FILTER_MODE_UNSPECIFIED",
      "key_frame_interval": 1,
      "level": 0.1,
      "profile": "TRANSCODING_PROFILE_UNSPECIFIED"
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.videostitching.v1.ListTranscodingSettingsResponse
500 Internal Server Error Internal Server Error Inline
default Default An unexpected error response. google.rpc.Status

Response Schema

List Video Representations

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/videostitching/v1/video_representations', params={
  'page_size': '0'
}, headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/videostitching/v1/video_representations", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/videostitching/v1/video_representations?page_size=0 HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/videostitching/v1/video_representations?page_size=0',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/videostitching/v1/video_representations?page_size=0',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /videostitching/v1/video_representations

Lists avaliable video representations

Parameters

Name In Type Required Description
page_size query integer(int32) true Maximum number of records to return.
page_token query string false The pagination token from the List request.
filter query string false Filter

Example responses

200 Response

{
  "next_page_token": "string",
  "video_representations": [
    {
      "bitrate": 100,
      "framerate": 24,
      "height": 240,
      "id": "string",
      "width": 320
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.videostitching.v1.ListVideoRepresentationsResponse
500 Internal Server Error Internal Server Error Inline
default Default An unexpected error response. google.rpc.Status

Response Schema

Lists Watermarks

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'API_KEY'
}

r = requests.get('https://mcls-api.mycujoo.tv/videostitching/v1/watermarks', params={
  'page_size': '0'
}, headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/videostitching/v1/watermarks", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/videostitching/v1/watermarks?page_size=0 HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/videostitching/v1/watermarks?page_size=0',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/videostitching/v1/watermarks?page_size=0',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /videostitching/v1/watermarks

Lists avaliable watermarks

Parameters

Name In Type Required Description
page_size query integer(int32) true Maximum number of records to return.
page_token query string false The pagination token from the List request.
filter query string false Filter

Example responses

200 Response

{
  "next_page_token": "string",
  "watermarks": [
    {
      "height": 0,
      "id": "string",
      "position_preset": "POSITION_UNSPECIFIED",
      "url": "string",
      "width": 0
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK A successful response. mycujoo.videostitching.v1.ListWatermarksResponse
500 Internal Server Error Internal Server Error Inline
default Default An unexpected error response. google.rpc.Status

Response Schema

Playlist Edge

Set an alternative playlist to a specific stream.

Code samples

import requests
headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Bearer $MCLS_TOKEN',
  'Authorization': 'API_KEY'
}

r = requests.post('https://mcls-api.mycujoo.tv/edge/playlist/{stream_id}/alternative', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Authorization": []string{"Bearer $MCLS_TOKEN"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://mcls-api.mycujoo.tv/edge/playlist/{stream_id}/alternative", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST https://mcls-api.mycujoo.tv/edge/playlist/{stream_id}/alternative HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: application/json

Authorization: Bearer $MCLS_TOKEN

const inputBody = '{
  "master": "https://yourserver.example.org/live/myapp/master.m3u8",
  "publish": true
}';
const headers = {
  'Content-Type':'application/json',
  'Authorization':'Bearer $MCLS_TOKEN',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/edge/playlist/{stream_id}/alternative',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "master": "https://yourserver.example.org/live/myapp/master.m3u8",
  "publish": true
};
const headers = {
  'Content-Type':'application/json',
  'Authorization':'Bearer $MCLS_TOKEN',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/edge/playlist/{stream_id}/alternative',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /edge/playlist/{stream_id}/alternative

Set an alternative URL to a specific stream. If publish is set to true the publishing flow will be forcibly triggered for this particular stream.

Body parameter

{
  "master": "https://yourserver.example.org/live/myapp/master.m3u8",
  "publish": true
}

Parameters

Name In Type Required Description
stream_id path string true Indicates the target
Authorization header string true none
body body SetAlternativeRequest false none

Responses

Status Meaning Description Schema
200 OK Alternative playlist has been set None
400 Bad Request bad input parameter None
401 Unauthorized authorization failed None

Remove an alternative URL from a specific stream.

Code samples

import requests
headers = {
  'Authorization': 'Bearer $MCLS_TOKEN',
  'Authorization': 'API_KEY'
}

r = requests.delete('https://mcls-api.mycujoo.tv/edge/playlist/{stream_id}/alternative', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Authorization": []string{"Bearer $MCLS_TOKEN"},
        "Authorization": []string{"API_KEY"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "https://mcls-api.mycujoo.tv/edge/playlist/{stream_id}/alternative", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE https://mcls-api.mycujoo.tv/edge/playlist/{stream_id}/alternative HTTP/1.1
Host: mcls-api.mycujoo.tv

Authorization: Bearer $MCLS_TOKEN


const headers = {
  'Authorization':'Bearer $MCLS_TOKEN',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/edge/playlist/{stream_id}/alternative',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Authorization':'Bearer $MCLS_TOKEN',
  'Authorization':'API_KEY'
};

fetch('https://mcls-api.mycujoo.tv/edge/playlist/{stream_id}/alternative',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

DELETE /edge/playlist/{stream_id}/alternative

Remove an alternative URL from a specific stream.

Parameters

Name In Type Required Description
stream_id path string true Indicates the target
Authorization header string true none

Responses

Status Meaning Description Schema
200 OK Alternative playlist has been set None
400 Bad Request bad input parameter None
401 Unauthorized authorization failed None

UploadAsset

Upload Information

Code samples

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'bearer xxxxxxx'
}

r = requests.get('https://mcls-api.mycujoo.tv/upload', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"bearer xxxxxxx"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://mcls-api.mycujoo.tv/upload", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET https://mcls-api.mycujoo.tv/upload HTTP/1.1
Host: mcls-api.mycujoo.tv
Accept: application/json
Authorization: bearer xxxxxxx


const headers = {
  'Accept':'application/json',
  'Authorization':'bearer xxxxxxx'
};

fetch('https://mcls-api.mycujoo.tv/upload',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'bearer xxxxxxx'
};

fetch('https://mcls-api.mycujoo.tv/upload',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /upload

Returns the current state of the upload URL. Asset Service CreateUploadRequest generates the full URL for upload.

Parameters

Name In Type Required Description
sig query string false Generated signature by Asset Service that allows user to upload the file with the predefined metadata
Authorization header string true none

Example responses

Responses

Status Meaning Description Schema
200 OK successful upload None
400 Bad Request bad input parameter None
500 Internal Server Error internal server error None

Response Schema

Uploads an asset

Code samples

import requests
headers = {
  'Content-Type': 'multipart/form-data',
  'Accept': 'application/json',
  'Authorization': 'bearer xxxxxxx'
}

r = requests.put('https://mcls-api.mycujoo.tv/upload', headers = headers)

print(r.json())

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"multipart/form-data"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"bearer xxxxxxx"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "https://mcls-api.mycujoo.tv/upload", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT https://mcls-api.mycujoo.tv/upload HTTP/1.1
Host: mcls-api.mycujoo.tv
Content-Type: multipart/form-data
Accept: application/json
Authorization: bearer xxxxxxx

const inputBody = '{
  "payload": "string"
}';
const headers = {
  'Content-Type':'multipart/form-data',
  'Accept':'application/json',
  'Authorization':'bearer xxxxxxx'
};

fetch('https://mcls-api.mycujoo.tv/upload',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

const fetch = require('node-fetch');
const inputBody = {
  "payload": "string"
};
const headers = {
  'Content-Type':'multipart/form-data',
  'Accept':'application/json',
  'Authorization':'bearer xxxxxxx'
};

fetch('https://mcls-api.mycujoo.tv/upload',
{
  method: 'PUT',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PUT /upload

Uploads a new asset into storage. It uses authorization token to select the organization. Asset Service CreateUploadRequest generates the full URL for upload.

Body parameter

payload: string

Parameters

Name In Type Required Description
sig query string false Generated signature by Asset Service that allows user to upload the file with the predefined metadata
Authorization header string true none
body body object false none
ยป payload body string(binary) false Bytes of the chunk

Example responses

Responses

Status Meaning Description Schema
200 OK successful chunk upload None
201 Created successful upload None
400 Bad Request bad input parameter None
500 Internal Server Error internal server error None

Response Schema

Schemas

SetAlternativeRequest

{
  "master": "https://yourserver.example.org/live/myapp/master.m3u8",
  "publish": true
}

Properties

Name Type Required Restrictions Description
master string true none none
publish boolean false none none

google.protobuf.Any

{
  "@type": "string"
}

Properties

Name Type Required Restrictions Description
@type string false none none

google.protobuf.NullValue

"NULL_VALUE"

NullValue is a singleton enumeration to represent the null value for the Value type union.

The JSON representation for NullValue is JSON null.

Properties

Name Type Required Restrictions Description
anonymous string false none NullValue is a singleton enumeration to represent the null value for the
Value type union.

The JSON representation for NullValue is JSON null.

- NULL_VALUE: Null value.

Enumerated Values

Property Value
anonymous NULL_VALUE

google.rpc.Status

{
  "code": 0,
  "details": [
    {
      "@type": "string"
    }
  ],
  "message": "string"
}

Properties

Name Type Required Restrictions Description
code integer(int32) false none none
details [google.protobuf.Any] false none none
message string false none none

google.type.CalendarPeriod

"CALENDAR_PERIOD_UNSPECIFIED"

A CalendarPeriod represents the abstract concept of a time period that has a canonical start. Grammatically, "the start of the current CalendarPeriod." All calendar times begin at midnight UTC.

Properties

Name Type Required Restrictions Description
anonymous string false none A CalendarPeriod represents the abstract concept of a time period that has
a canonical start. Grammatically, "the start of the current
CalendarPeriod." All calendar times begin at midnight UTC.

- CALENDAR_PERIOD_UNSPECIFIED: Undefined period, raises an error.
- DAY: A day.
- WEEK: A week. Weeks begin on Monday, following
ISO 8601.
- FORTNIGHT: A fortnight. The first calendar fortnight of the year begins at the start
of week 1 according to
ISO 8601.
- MONTH: A month.
- QUARTER: A quarter. Quarters start on dates 1-Jan, 1-Apr, 1-Jul, and 1-Oct of each
year.
- HALF: A half-year. Half-years start on dates 1-Jan and 1-Jul.
- YEAR: A year.

Enumerated Values

Property Value
anonymous CALENDAR_PERIOD_UNSPECIFIED
anonymous DAY
anonymous WEEK
anonymous FORTNIGHT
anonymous MONTH
anonymous QUARTER
anonymous HALF
anonymous YEAR

google.type.Interval

{
  "end_time": "2019-08-24T14:15:22Z",
  "start_time": "2019-08-24T14:15:22Z"
}

Represents a time interval, encoded as a Timestamp start (inclusive) and a Timestamp end (exclusive).

The start must be less than or equal to the end. When the start equals the end, the interval is empty (matches no time). When both start and end are unspecified, the interval matches any time.

Properties

Name Type Required Restrictions Description
end_time string(date-time) false none Optional. Exclusive end of the interval.

If specified, a Timestamp matching this interval will have to be before the
end.
start_time string(date-time) false none Optional. Inclusive start of the interval.

If specified, a Timestamp matching this interval will have to be the same
or after the start.

google.type.LatLng

{
  "latitude": 0.1,
  "longitude": 0.1
}

An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this must conform to the WGS84 standard. Values must be within normalized ranges.

Properties

Name Type Required Restrictions Description
latitude number(double) false none The latitude in degrees. It must be in the range [-90.0, +90.0].
longitude number(double) false none The longitude in degrees. It must be in the range [-180.0, +180.0].

google.type.Money

{
  "currency_code": "string",
  "nanos": 0,
  "units": "string"
}

Represents an amount of money with its currency type.

Properties

Name Type Required Restrictions Description
currency_code string false none The three-letter currency code defined in ISO 4217.
nanos integer(int32) false none Number of nano (10^-9) units of the amount.
The value must be between -999,999,999 and +999,999,999 inclusive.
If units is positive, nanos must be positive or zero.
If units is zero, nanos can be positive, zero, or negative.
If units is negative, nanos must be negative or zero.
For example $-1.75 is represented as units=-1 and nanos=-750,000,000.
units string(int64) false none The whole units of the amount.
For example if currencyCode is "USD", then 1 unit is one US dollar.

mycujoo.accounting.v1beta1.AmountUnit

"AMOUNT_UNIT_UNSPECIFIED"

Properties

Name Type Required Restrictions Description
anonymous string false none none

Enumerated Values

Property Value
anonymous AMOUNT_UNIT_UNSPECIFIED
anonymous AMOUNT_UNIT_SIZE_BYTE
anonymous AMOUNT_UNIT_SIZE_GB
anonymous AMOUNT_UNIT_TIME_SECOND
anonymous AMOUNT_UNIT_TIME_MINUTE
anonymous AMOUNT_UNIT_COUNT

mycujoo.accounting.v1beta1.Card

{
  "brand": "string",
  "exp_month": 0,
  "exp_year": 0,
  "last_digits": "string",
  "name": "string"
}

Properties

Name Type Required Restrictions Description
brand string false none Defines card brand name
i.e Visa, mastercard, mastero, etc.
exp_month integer(int32) false none none
exp_year integer(int32) false none none
last_digits string false none none
name string false none none

mycujoo.accounting.v1beta1.CreateStripePaymentMethodRequest

{
  "setup_intent_id": "string"
}

Properties

Name Type Required Restrictions Description
setup_intent_id string false none Unique identifier for the setup intent object.
You can make it through calling the confirmCardSetup
method (Stripe SDK).

mycujoo.accounting.v1beta1.CreateStripePaymentMethodResponse

{
  "payment_method": {
    "card": {
      "brand": "string",
      "exp_month": 0,
      "exp_year": 0,
      "last_digits": "string",
      "name": "string"
    },
    "create_time": "2019-08-24T14:15:22Z",
    "id": "string",
    "is_default": true,
    "org_id": "string",
    "provider": "PAYMENT_METHOD_PROVIDER_UNSPECIFIED",
    "update_time": "2019-08-24T14:15:22Z"
  }
}

Properties

Name Type Required Restrictions Description
payment_method mycujoo.accounting.v1beta1.PaymentMethod false none none

mycujoo.accounting.v1beta1.CreateStripeSetupIntentRequest

{}

Properties

None

mycujoo.accounting.v1beta1.CreateStripeSetupIntentResponse

{
  "client_secret": "string"
}

Properties

Name Type Required Restrictions Description
client_secret string false none The client secret can be used to complete payment setup from your frontend.
It should not be stored, logged, embedded in URLs, or exposed to anyone other
than the customer. Make sure that you have TLS enabled on any page that includes
the client secret.

mycujoo.accounting.v1beta1.DeletePaymentMethodResponse

{}

Properties

None

mycujoo.accounting.v1beta1.Discount

{
  "end_time": "2019-08-24T14:15:22Z",
  "max_usage": 0.1,
  "min_usage": 0.1,
  "price": {
    "currency_code": "string",
    "nanos": 0,
    "units": "string"
  },
  "start_time": "2019-08-24T14:15:22Z"
}

Properties

Name Type Required Restrictions Description
end_time string(date-time) false none none
max_usage number(double) false none none
min_usage number(double) false none none
price google.type.Money false none Represents an amount of money with its currency type.
start_time string(date-time) false none none

mycujoo.accounting.v1beta1.DiscountedPricing

{
  "current_usage": 0.1,
  "description": "string",
  "discounts": [
    {
      "end_time": "2019-08-24T14:15:22Z",
      "max_usage": 0.1,
      "min_usage": 0.1,
      "price": {
        "currency_code": "string",
        "nanos": 0,
        "units": "string"
      },
      "start_time": "2019-08-24T14:15:22Z"
    }
  ],
  "msrp": {
    "currency_code": "string",
    "nanos": 0,
    "units": "string"
  },
  "price": {
    "currency_code": "string",
    "nanos": 0,
    "units": "string"
  },
  "sku_id": "string"
}

Properties

Name Type Required Restrictions Description
current_usage number(double) false none none
description string false none none
discounts [mycujoo.accounting.v1beta1.Discount] false none none
msrp google.type.Money false none Represents an amount of money with its currency type.
price google.type.Money false none Represents an amount of money with its currency type.
sku_id string false none none

mycujoo.accounting.v1beta1.DownloadInvoiceResponse

{
  "download_url": "string"
}

Properties

Name Type Required Restrictions Description
download_url string false none none

mycujoo.accounting.v1beta1.GetOrganizationResponse

{
  "organization": {
    "email": "string",
    "id": "string",
    "invoice_template_id": "string",
    "is_enabled": true,
    "is_test": true,
    "name": "string",
    "tax": {
      "address_lines": [
        "string"
      ],
      "city": "string",
      "country": "st",
      "id": "string",
      "name": "string",
      "phone_number": "string",
      "province": "string",
      "zip_code": "string"
    }
  }
}

Properties

Name Type Required Restrictions Description
organization mycujoo.accounting.v1beta1.Organization false none none

mycujoo.accounting.v1beta1.GetPaymentMethodResponse

{
  "payment_method": {
    "card": {
      "brand": "string",
      "exp_month": 0,
      "exp_year": 0,
      "last_digits": "string",
      "name": "string"
    },
    "create_time": "2019-08-24T14:15:22Z",
    "id": "string",
    "is_default": true,
    "org_id": "string",
    "provider": "PAYMENT_METHOD_PROVIDER_UNSPECIFIED",
    "update_time": "2019-08-24T14:15:22Z"
  }
}

Properties

Name Type Required Restrictions Description
payment_method mycujoo.accounting.v1beta1.PaymentMethod false none none

mycujoo.accounting.v1beta1.GetVATValidationResponse

{
  "company_address": "string",
  "company_name": "string",
  "country_code": "string",
  "is_valid": true,
  "vat_number": "string"
}

Properties

Name Type Required Restrictions Description
company_address string false none The address of the company.
company_name string false none The name of the company.
country_code string false none none
is_valid boolean false none Whether the VAT number is valid or not.
vat_number string false none The VAT number.

mycujoo.accounting.v1beta1.Invoice

{
  "amount": 0.1,
  "currency": "string",
  "due_time": "2019-08-24T14:15:22Z",
  "end_time": "2019-08-24T14:15:22Z",
  "id": "string",
  "issue_time": "2019-08-24T14:15:22Z",
  "org_id": "string",
  "payment": {
    "amount": 0.1,
    "create_time": "2019-08-24T14:15:22Z",
    "currency": "string",
    "id": "string",
    "invoice_id": "string",
    "message": "string",
    "org_id": "string",
    "payment_method": {
      "card": {
        "brand": "string",
        "exp_month": 0,
        "exp_year": 0,
        "last_digits": "string",
        "name": "string"
      },
      "create_time": "2019-08-24T14:15:22Z",
      "id": "string",
      "is_default": true,
      "org_id": "string",
      "provider": "PAYMENT_METHOD_PROVIDER_UNSPECIFIED",
      "update_time": "2019-08-24T14:15:22Z"
    },
    "status": "PAYMENT_STATUS_UNSPECIFIED"
  },
  "start_time": "2019-08-24T14:15:22Z",
  "status": "STATUS_UNSPECIFIED",
  "update_time": "2019-08-24T14:15:22Z",
  "usages": [
    {
      "amount": 0.1,
      "amount_unit": "AMOUNT_UNIT_UNSPECIFIED",
      "cost": {
        "amount": 0.1,
        "currency": "string"
      },
      "description": "string",
      "end_time": "2019-08-24T14:15:22Z",
      "sku_id": "string",
      "start_time": "2019-08-24T14:15:22Z"
    }
  ]
}

Properties

Name Type Required Restrictions Description
amount number(double) false none none
currency string false none none
due_time string(date-time) false none none
end_time string(date-time) false none none
id string false none none
issue_time string(date-time) false none none
org_id string false none none
payment mycujoo.accounting.v1beta1.Payment false none none
start_time string(date-time) false none none
status mycujoo.accounting.v1beta1.Status false none none
update_time string(date-time) false none none
usages [mycujoo.accounting.v1beta1.InvoiceUsage] false none none

mycujoo.accounting.v1beta1.InvoiceUsage

{
  "amount": 0.1,
  "amount_unit": "AMOUNT_UNIT_UNSPECIFIED",
  "cost": {
    "amount": 0.1,
    "currency": "string"
  },
  "description": "string",
  "end_time": "2019-08-24T14:15:22Z",
  "sku_id": "string",
  "start_time": "2019-08-24T14:15:22Z"
}

Properties

Name Type Required Restrictions Description
amount number(double) false none none
amount_unit mycujoo.accounting.v1beta1.AmountUnit false none none
cost mycujoo.accounting.v1beta1.InvoiceUsageCost false none none
description string false none none
end_time string(date-time) false none none
sku_id string false none none
start_time string(date-time) false none none

mycujoo.accounting.v1beta1.InvoiceUsageCost

{
  "amount": 0.1,
  "currency": "string"
}

Properties

Name Type Required Restrictions Description
amount number(double) false none none
currency string false none none

mycujoo.accounting.v1beta1.ListInvoicesResponse

{
  "invoices": [
    {
      "amount": 0.1,
      "currency": "string",
      "due_time": "2019-08-24T14:15:22Z",
      "end_time": "2019-08-24T14:15:22Z",
      "id": "string",
      "issue_time": "2019-08-24T14:15:22Z",
      "org_id": "string",
      "payment": {
        "amount": 0.1,
        "create_time": "2019-08-24T14:15:22Z",
        "currency": "string",
        "id": "string",
        "invoice_id": "string",
        "message": "string",
        "org_id": "string",
        "payment_method": {
          "card": {
            "brand": "string",
            "exp_month": 0,
            "exp_year": 0,
            "last_digits": "string",
            "name": "string"
          },
          "create_time": "2019-08-24T14:15:22Z",
          "id": "string",
          "is_default": true,
          "org_id": "string",
          "provider": "PAYMENT_METHOD_PROVIDER_UNSPECIFIED",
          "update_time": "2019-08-24T14:15:22Z"
        },
        "status": "PAYMENT_STATUS_UNSPECIFIED"
      },
      "start_time": "2019-08-24T14:15:22Z",
      "status": "STATUS_UNSPECIFIED",
      "update_time": "2019-08-24T14:15:22Z",
      "usages": [
        {
          "amount": 0.1,
          "amount_unit": "AMOUNT_UNIT_UNSPECIFIED",
          "cost": {
            "amount": 0.1,
            "currency": "string"
          },
          "description": "string",
          "end_time": "2019-08-24T14:15:22Z",
          "sku_id": "string",
          "start_time": "2019-08-24T14:15:22Z"
        }
      ]
    }
  ]
}

Properties

Name Type Required Restrictions Description
invoices [mycujoo.accounting.v1beta1.Invoice] false none none

mycujoo.accounting.v1beta1.ListOrganizationPricingResponse

{
  "pricings": [
    {
      "current_usage": 0.1,
      "description": "string",
      "discounts": [
        {
          "end_time": "2019-08-24T14:15:22Z",
          "max_usage": 0.1,
          "min_usage": 0.1,
          "price": {
            "currency_code": "string",
            "nanos": 0,
            "units": "string"
          },
          "start_time": "2019-08-24T14:15:22Z"
        }
      ],
      "msrp": {
        "currency_code": "string",
        "nanos": 0,
        "units": "string"
      },
      "price": {
        "currency_code": "string",
        "nanos": 0,
        "units": "string"
      },
      "sku_id": "string"
    }
  ]
}

Properties

Name Type Required Restrictions Description
pricings [mycujoo.accounting.v1beta1.DiscountedPricing] false none none

mycujoo.accounting.v1beta1.ListPaymentMethodsResponse

{
  "payment_method": [
    {
      "card": {
        "brand": "string",
        "exp_month": 0,
        "exp_year": 0,
        "last_digits": "string",
        "name": "string"
      },
      "create_time": "2019-08-24T14:15:22Z",
      "id": "string",
      "is_default": true,
      "org_id": "string",
      "provider": "PAYMENT_METHOD_PROVIDER_UNSPECIFIED",
      "update_time": "2019-08-24T14:15:22Z"
    }
  ]
}

Properties

Name Type Required Restrictions Description
payment_method [mycujoo.accounting.v1beta1.PaymentMethod] false none none

mycujoo.accounting.v1beta1.ListPaymentsResponse

{
  "payments": [
    {
      "amount": 0.1,
      "create_time": "2019-08-24T14:15:22Z",
      "currency": "string",
      "id": "string",
      "invoice_id": "string",
      "message": "string",
      "org_id": "string",
      "payment_method": {
        "card": {
          "brand": "string",
          "exp_month": 0,
          "exp_year": 0,
          "last_digits": "string",
          "name": "string"
        },
        "create_time": "2019-08-24T14:15:22Z",
        "id": "string",
        "is_default": true,
        "org_id": "string",
        "provider": "PAYMENT_METHOD_PROVIDER_UNSPECIFIED",
        "update_time": "2019-08-24T14:15:22Z"
      },
      "status": "PAYMENT_STATUS_UNSPECIFIED"
    }
  ]
}

Properties

Name Type Required Restrictions Description
payments [mycujoo.accounting.v1beta1.Payment] false none none

mycujoo.accounting.v1beta1.ListPricingResponse

{
  "pricings": [
    {
      "current_usage": 0.1,
      "description": "string",
      "discounts": [
        {
          "end_time": "2019-08-24T14:15:22Z",
          "max_usage": 0.1,
          "min_usage": 0.1,
          "price": {
            "currency_code": "string",
            "nanos": 0,
            "units": "string"
          },
          "start_time": "2019-08-24T14:15:22Z"
        }
      ],
      "msrp": {
        "currency_code": "string",
        "nanos": 0,
        "units": "string"
      },
      "price": {
        "currency_code": "string",
        "nanos": 0,
        "units": "string"
      },
      "sku_id": "string"
    }
  ]
}

Properties

Name Type Required Restrictions Description
pricings [mycujoo.accounting.v1beta1.DiscountedPricing] false none none

mycujoo.accounting.v1beta1.ListRunningSKUUsageResponse

{
  "amount": 0.1,
  "currency": "string",
  "end_time": "2019-08-24T14:15:22Z",
  "start_time": "2019-08-24T14:15:22Z",
  "update_time": "2019-08-24T14:15:22Z",
  "usages": [
    {
      "amount": 0.1,
      "amount_unit": "AMOUNT_UNIT_UNSPECIFIED",
      "cost": {
        "amount": 0.1,
        "currency": "string"
      },
      "description": "string",
      "end_time": "2019-08-24T14:15:22Z",
      "sku_id": "string",
      "start_time": "2019-08-24T14:15:22Z"
    }
  ]
}

Properties

Name Type Required Restrictions Description
amount number(double) false none none
currency string false none none
end_time string(date-time) false none none
start_time string(date-time) false none none
update_time string(date-time) false none none
usages [mycujoo.accounting.v1beta1.RunningUsage] false none none

mycujoo.accounting.v1beta1.ListSKUUsageResponse

{
  "next_page_token": "string",
  "usages": [
    {
      "amount": 0.1,
      "end_time": "2019-08-24T14:15:22Z",
      "sku_id": "string",
      "start_time": "2019-08-24T14:15:22Z"
    }
  ]
}

Properties

Name Type Required Restrictions Description
next_page_token string false none If there are more results than have been returned, then this field is set
to a non-empty value. To see the additional results,
use that value as page_token in the next call to this method.
usages [mycujoo.accounting.v1beta1.SKUUsage] false none none

mycujoo.accounting.v1beta1.Organization

{
  "email": "string",
  "id": "string",
  "invoice_template_id": "string",
  "is_enabled": true,
  "is_test": true,
  "name": "string",
  "tax": {
    "address_lines": [
      "string"
    ],
    "city": "string",
    "country": "st",
    "id": "string",
    "name": "string",
    "phone_number": "string",
    "province": "string",
    "zip_code": "string"
  }
}

Properties

Name Type Required Restrictions Description
email string false none none
id string false none none
invoice_template_id string false none none
is_enabled boolean false none none
is_test boolean false none none
name string false none none
tax mycujoo.accounting.v1beta1.Tax false none none

mycujoo.accounting.v1beta1.Payment

{
  "amount": 0.1,
  "create_time": "2019-08-24T14:15:22Z",
  "currency": "string",
  "id": "string",
  "invoice_id": "string",
  "message": "string",
  "org_id": "string",
  "payment_method": {
    "card": {
      "brand": "string",
      "exp_month": 0,
      "exp_year": 0,
      "last_digits": "string",
      "name": "string"
    },
    "create_time": "2019-08-24T14:15:22Z",
    "id": "string",
    "is_default": true,
    "org_id": "string",
    "provider": "PAYMENT_METHOD_PROVIDER_UNSPECIFIED",
    "update_time": "2019-08-24T14:15:22Z"
  },
  "status": "PAYMENT_STATUS_UNSPECIFIED"
}

Properties

Name Type Required Restrictions Description
amount number(double) false none Defines the paid amount.
create_time string(date-time) false none Shows the creation time of this resource.
currency string false none Currency of the payment as described in ISO 4217 standard.
id string false none Unique Payment method ID.
invoice_id string false none Defines source invoice ID.
message string false none In a case that processing had an issue, this shows some detail and information regarding that.
org_id string false none Defines resource owner ID.
payment_method mycujoo.accounting.v1beta1.PaymentMethod false none none
status mycujoo.accounting.v1beta1.Payment.PaymentStatus false none none

mycujoo.accounting.v1beta1.Payment.PaymentStatus

"PAYMENT_STATUS_UNSPECIFIED"

Properties

Name Type Required Restrictions Description
anonymous string false none none

Enumerated Values

Property Value
anonymous PAYMENT_STATUS_UNSPECIFIED
anonymous PAYMENT_STATUS_PAID
anonymous PAYMENT_STATUS_DEFERRED
anonymous PAYMENT_STATUS_FAILED
anonymous PAYMENT_STATUS_REFUNDED

mycujoo.accounting.v1beta1.PaymentMethod

{
  "card": {
    "brand": "string",
    "exp_month": 0,
    "exp_year": 0,
    "last_digits": "string",
    "name": "string"
  },
  "create_time": "2019-08-24T14:15:22Z",
  "id": "string",
  "is_default": true,
  "org_id": "string",
  "provider": "PAYMENT_METHOD_PROVIDER_UNSPECIFIED",
  "update_time": "2019-08-24T14:15:22Z"
}

Properties

Name Type Required Restrictions Description
card mycujoo.accounting.v1beta1.Card false none none
create_time string(date-time) false none none
id string false none none
is_default boolean false none Defines whether this payment method is default or not
Each organization MUST have one default payment method
It's not possible that an organization doesn't have
Default payment method.
org_id string false none none
provider mycujoo.accounting.v1beta1.PaymentMethod.PaymentMethodProvider false none none
update_time string(date-time) false none none

mycujoo.accounting.v1beta1.PaymentMethod.PaymentMethodProvider

"PAYMENT_METHOD_PROVIDER_UNSPECIFIED"

Properties

Name Type Required Restrictions Description
anonymous string false none none

Enumerated Values

Property Value
anonymous PAYMENT_METHOD_PROVIDER_UNSPECIFIED
anonymous PAYMENT_METHOD_PROVIDER_STRIPE

mycujoo.accounting.v1beta1.PaymentMethodUpdate

{
  "is_default": true
}

Properties

Name Type Required Restrictions Description
is_default boolean false none Defines whether this payment method is default or not
Each organization MUST have one default payment method
It's not possible that an organization doesn't have
Default payment method.

mycujoo.accounting.v1beta1.PutOrganizationResponse

{
  "organization": {
    "email": "string",
    "id": "string",
    "invoice_template_id": "string",
    "is_enabled": true,
    "is_test": true,
    "name": "string",
    "tax": {
      "address_lines": [
        "string"
      ],
      "city": "string",
      "country": "st",
      "id": "string",
      "name": "string",
      "phone_number": "string",
      "province": "string",
      "zip_code": "string"
    }
  }
}

Properties

Name Type Required Restrictions Description
organization mycujoo.accounting.v1beta1.Organization false none none

mycujoo.accounting.v1beta1.RunningUsage

{
  "amount": 0.1,
  "amount_unit": "AMOUNT_UNIT_UNSPECIFIED",
  "cost": {
    "amount": 0.1,
    "currency": "string"
  },
  "description": "string",
  "end_time": "2019-08-24T14:15:22Z",
  "sku_id": "string",
  "start_time": "2019-08-24T14:15:22Z"
}

Properties

Name Type Required Restrictions Description
amount number(double) false none none
amount_unit mycujoo.accounting.v1beta1.AmountUnit false none none
cost mycujoo.accounting.v1beta1.RunningUsageCost false none none
description string false none none
end_time string(date-time) false none none
sku_id string false none none
start_time string(date-time) false none none

mycujoo.accounting.v1beta1.RunningUsageCost

{
  "amount": 0.1,
  "currency": "string"
}

Properties

Name Type Required Restrictions Description
amount number(double) false none none
currency string false none none

mycujoo.accounting.v1beta1.SKUUsage

{
  "amount": 0.1,
  "end_time": "2019-08-24T14:15:22Z",
  "sku_id": "string",
  "start_time": "2019-08-24T14:15:22Z"
}

Properties

Name Type Required Restrictions Description
amount number(double) false none none
end_time string(date-time) false none none
sku_id string false none none
start_time string(date-time) false none none

mycujoo.accounting.v1beta1.Status

"STATUS_UNSPECIFIED"

Properties

Name Type Required Restrictions Description
anonymous string false none none

Enumerated Values

Property Value
anonymous STATUS_UNSPECIFIED
anonymous STATUS_ISSUED
anonymous STATUS_VIEWED
anonymous STATUS_PAID
anonymous STATUS_OVERDUE
anonymous STATUS_CANCELLED
anonymous STATUS_DEFERRED

mycujoo.accounting.v1beta1.Tax

{
  "address_lines": [
    "string"
  ],
  "city": "string",
  "country": "st",
  "id": "string",
  "name": "string",
  "phone_number": "string",
  "province": "string",
  "zip_code": "string"
}

Properties

Name Type Required Restrictions Description
address_lines [string] false none The address to which the tax identifier belongs
Maximum length of each line must be 100 characters.
city string false none none
country string false none none
id string false none none
name string false none none
phone_number string false none none
province string false none none
zip_code string false none none

mycujoo.accounting.v1beta1.UpdateOrganizationResponse

{
  "organization": {
    "email": "string",
    "id": "string",
    "invoice_template_id": "string",
    "is_enabled": true,
    "is_test": true,
    "name": "string",
    "tax": {
      "address_lines": [
        "string"
      ],
      "city": "string",
      "country": "st",
      "id": "string",
      "name": "string",
      "phone_number": "string",
      "province": "string",
      "zip_code": "string"
    }
  }
}

Properties

Name Type Required Restrictions Description
organization mycujoo.accounting.v1beta1.Organization false none none

mycujoo.accounting.v1beta1.UpdatePaymentMethodResponse

{
  "payment_method": {
    "card": {
      "brand": "string",
      "exp_month": 0,
      "exp_year": 0,
      "last_digits": "string",
      "name": "string"
    },
    "create_time": "2019-08-24T14:15:22Z",
    "id": "string",
    "is_default": true,
    "org_id": "string",
    "provider": "PAYMENT_METHOD_PROVIDER_UNSPECIFIED",
    "update_time": "2019-08-24T14:15:22Z"
  }
}

Properties

Name Type Required Restrictions Description
payment_method mycujoo.accounting.v1beta1.PaymentMethod false none none

mycujoo.accounts.v1.Account

{
  "email": "string",
  "first_name": "string",
  "id": "string",
  "is_verified": true,
  "last_name": "string"
}

Properties

Name Type Required Restrictions Description
email string false none none
first_name string false none none
id string false read-only none
is_verified boolean false read-only none
last_name string false none none

mycujoo.accounts.v1.AccountUpdate

{
  "first_name": "string",
  "last_name": "string"
}

Properties

Name Type Required Restrictions Description
first_name string false none none
last_name string false none none

mycujoo.accounts.v1.BatchDeleteAccountsRequest

{
  "ids": [
    "string"
  ]
}

Properties

Name Type Required Restrictions Description
ids [string] false none none

mycujoo.accounts.v1.BatchDeleteAccountsResponse

{}

Properties

None

mycujoo.accounts.v1.BatchGetAccountsByEmailRequest

{
  "email_addresses": [
    "string"
  ]
}

Properties

Name Type Required Restrictions Description
email_addresses [string] true none none

mycujoo.accounts.v1.BatchGetAccountsByEmailResponse

{
  "accounts": [
    {
      "email": "string",
      "first_name": "string",
      "id": "string",
      "is_verified": true,
      "last_name": "string"
    }
  ]
}

Properties

Name Type Required Restrictions Description
accounts [mycujoo.accounts.v1.Account] false none none

mycujoo.accounts.v1.BatchGetAccountsRequest

{
  "account_ids": [
    "string"
  ]
}

Properties

Name Type Required Restrictions Description
account_ids [string] true none none

mycujoo.accounts.v1.BatchGetAccountsResponse

{
  "accounts": [
    {
      "email": "string",
      "first_name": "string",
      "id": "string",
      "is_verified": true,
      "last_name": "string"
    }
  ]
}

Properties

Name Type Required Restrictions Description
accounts [mycujoo.accounts.v1.Account] false none none

mycujoo.accounts.v1.ChangePasswordRequest

{
  "new_password": "string",
  "old_password": "string"
}

Properties

Name Type Required Restrictions Description
new_password string true none none
old_password string true none none

mycujoo.accounts.v1.ChangePasswordResponse

{}

Properties

None

mycujoo.accounts.v1.CheckPasswordResetRequest

{
  "reset_code": "string"
}

Properties

Name Type Required Restrictions Description
reset_code string true none none

mycujoo.accounts.v1.CheckPasswordResetResponse

{
  "token": "string"
}

Properties

Name Type Required Restrictions Description
token string false none none

mycujoo.accounts.v1.CreateAccountRequest

{
  "email": "string",
  "first_name": "string",
  "last_name": "string"
}

Properties

Name Type Required Restrictions Description
email string true none none
first_name string false none none
last_name string false none none

mycujoo.accounts.v1.CreateAccountResponse

{
  "password": "string"
}

Properties

Name Type Required Restrictions Description
password string false none none

mycujoo.accounts.v1.DeleteBindingsResponse

{}

Properties

None

mycujoo.accounts.v1.GetAccountResponse

{
  "account": {
    "email": "string",
    "first_name": "string",
    "id": "string",
    "is_verified": true,
    "last_name": "string"
  }
}

Properties

Name Type Required Restrictions Description
account mycujoo.accounts.v1.Account false none none

mycujoo.accounts.v1.GetMyAccountResponse

{
  "account": {
    "email": "string",
    "first_name": "string",
    "id": "string",
    "is_verified": true,
    "last_name": "string"
  }
}

Properties

Name Type Required Restrictions Description
account mycujoo.accounts.v1.Account false none none

mycujoo.accounts.v1.InviteAccountRequest

{
  "email": "string",
  "first_name": "string",
  "last_name": "string"
}

Properties

Name Type Required Restrictions Description
email string true none none
first_name string false none none
last_name string false none none

mycujoo.accounts.v1.InviteAccountResponse

{
  "account_id": "string"
}

Properties

Name Type Required Restrictions Description
account_id string false none none

mycujoo.accounts.v1.ListAccountsResponse

{
  "accounts": [
    {
      "email": "string",
      "first_name": "string",
      "id": "string",
      "is_verified": true,
      "last_name": "string"
    }
  ],
  "next_page_token": "string"
}

Properties

Name Type Required Restrictions Description
accounts [mycujoo.accounts.v1.Account] false none none
next_page_token string false none If there are more results than have been returned, then this field is set
to a non-empty value. To see the additional results,
use that value as page_token in the next call to this method.

mycujoo.accounts.v1.ResendAccountVerificationRequest

{
  "email": "string",
  "org_id": "string"
}

Properties

Name Type Required Restrictions Description
email string true none none
org_id string true none none

mycujoo.accounts.v1.ResendAccountVerificationResponse

{}

Properties

None

mycujoo.accounts.v1.ResetPasswordRequest

{
  "new_password": "string",
  "reset_code": "string"
}

Properties

Name Type Required Restrictions Description
new_password string true none none
reset_code string true none none

mycujoo.accounts.v1.ResetPasswordResponse

{}

Properties

None

mycujoo.accounts.v1.SendPasswordResetRequest

{
  "email": "string",
  "org_id": "string"
}

Properties

Name Type Required Restrictions Description
email string true none none
org_id string true none none

mycujoo.accounts.v1.SendPasswordResetResponse

{}

Properties

None

mycujoo.accounts.v1.UpdateAccountResponse

{
  "account": {
    "email": "string",
    "first_name": "string",
    "id": "string",
    "is_verified": true,
    "last_name": "string"
  }
}

Properties

Name Type Required Restrictions Description
account mycujoo.accounts.v1.Account false none none

mycujoo.accounts.v1.VerifyAccountEmailRequest

{
  "account_id": "string",
  "org_id": "string",
  "verification_code": "string"
}

Properties

Name Type Required Restrictions Description
account_id string true none none
org_id string true none none
verification_code string true none none

mycujoo.accounts.v1.VerifyAccountEmailResponse

{
  "token": "string"
}

Properties

Name Type Required Restrictions Description
token string false none none

mycujoo.actions.v1beta1.Action

{
  "action_fields": [
    {
      "bool_value": true,
      "datetime_value": "2019-08-24T14:15:22Z",
      "float_value": 0.1,
      "is_configurable": true,
      "is_required": true,
      "label": "string",
      "name": "string",
      "no_default_value": true,
      "number_value": "string",
      "string_value": "string",
      "validators": [
        {
          "max": 0,
          "min": 0,
          "regex": "string"
        }
      ],
      "value_options": [
        {
          "bool_value": true,
          "datetime_value": "2019-08-24T14:15:22Z",
          "float_value": 0.1,
          "label": "string",
          "number_value": "string",
          "string_value": "string"
        }
      ],
      "value_type": "VALUE_TYPE_UNSPECIFIED"
    }
  ],
  "category_id": "string",
  "description": "string",
  "icon_url": "string",
  "id": "string",
  "is_active": true,
  "request_schema_id": "string",
  "request_topic": "string",
  "response_schema_id": "string",
  "response_topic": "string",
  "service_id": "string",
  "title": "string"
}

Properties

Name Type Required Restrictions Description
action_fields [mycujoo.actions.v1beta1.ActionField] false none none
category_id string false none none
description string false none none
icon_url string false none none
id string false none none
is_active boolean false none none
request_schema_id string false none none
request_topic string false none none
response_schema_id string false none none
response_topic string false none none
service_id string false none none
title string false none none

mycujoo.actions.v1beta1.ActionCall

{
  "configuration_id": "string",
  "group_id": "string",
  "id": "string",
  "request_data": {
    "data": {},
    "id": "string"
  },
  "response_data": {
    "data": {},
    "id": "string"
  },
  "state": "ACTION_CALL_STATE_UNSPECIFIED"
}

Properties

Name Type Required Restrictions Description
configuration_id string false none none
group_id string false none none
id string false none none
request_data mycujoo.actions.v1beta1.ActionCallMetadata false none none
response_data mycujoo.actions.v1beta1.ActionCallMetadata false none none
state mycujoo.actions.v1beta1.ActionCallState false none none

mycujoo.actions.v1beta1.ActionCallMetadata

{
  "data": {},
  "id": "string"
}

Properties

Name Type Required Restrictions Description
data object false none none
id string false none none

mycujoo.actions.v1beta1.ActionCallState

"ACTION_CALL_STATE_UNSPECIFIED"

Properties

Name Type Required Restrictions Description
- ACTION_CALL_STATE_AWAITING: Action call is awaiting, might not have all the necessary data

Enumerated Values

Property Value
- ACTION_CALL_STATE_AWAITING: Action call is awaiting, might not have all the necessary data

mycujoo.actions.v1beta1.ActionCategory

{
  "description": "string",
  "id": "string",
  "menu_title": "string",
  "title": "string"
}

Properties

Name Type Required Restrictions Description
description string false none none
id string false none none
menu_title string false none none
title string false none none

mycujoo.actions.v1beta1.ActionConfiguration

{
  "action_id": "string",
  "fields": [
    {
      "bool_value": true,
      "datetime_value": "2019-08-24T14:15:22Z",
      "field": "string",
      "float_value": 0.1,
      "number_value": "string",
      "string_value": "string"
    }
  ],
  "group_id": "string",
  "id": "string",
  "order": 0,
  "title": "string"
}

Action Configurations are the link between the action and the annotations

Properties

Name Type Required Restrictions Description
action_id string false none none
fields [mycujoo.actions.v1beta1.ActionConfigurationField] false none none
group_id string false none none
id string false none none
order integer(int32) false none none
title string false none none

mycujoo.actions.v1beta1.ActionConfigurationField

{
  "bool_value": true,
  "datetime_value": "2019-08-24T14:15:22Z",
  "field": "string",
  "float_value": 0.1,
  "number_value": "string",
  "string_value": "string"
}

Properties

Name Type Required Restrictions Description
bool_value boolean false none none
datetime_value string(date-time) false none none
field string false none none
float_value number(float) false none none
number_value string(int64) false none none
string_value string false none none

mycujoo.actions.v1beta1.ActionField

{
  "bool_value": true,
  "datetime_value": "2019-08-24T14:15:22Z",
  "float_value": 0.1,
  "is_configurable": true,
  "is_required": true,
  "label": "string",
  "name": "string",
  "no_default_value": true,
  "number_value": "string",
  "string_value": "string",
  "validators": [
    {
      "max": 0,
      "min": 0,
      "regex": "string"
    }
  ],
  "value_options": [
    {
      "bool_value": true,
      "datetime_value": "2019-08-24T14:15:22Z",
      "float_value": 0.1,
      "label": "string",
      "number_value": "string",
      "string_value": "string"
    }
  ],
  "value_type": "VALUE_TYPE_UNSPECIFIED"
}

Properties

Name Type Required Restrictions Description
bool_value boolean false none none
datetime_value string(date-time) false none none
float_value number(float) false none none
is_configurable boolean false none none
is_required boolean false none none
label string false none none
name string false none none
no_default_value boolean false none none
number_value string(int64) false none none
string_value string false none none
validators [mycujoo.actions.v1beta1.ActionField.Validator] false none none
value_options [mycujoo.actions.v1beta1.OptionValue] false none none
value_type mycujoo.actions.v1beta1.ActionField.ValueType false none none

mycujoo.actions.v1beta1.ActionField.Validator

{
  "max": 0,
  "min": 0,
  "regex": "string"
}

Properties

Name Type Required Restrictions Description
max integer(int32) false none none
min integer(int32) false none none
regex string false none none

mycujoo.actions.v1beta1.ActionField.ValueType

"VALUE_TYPE_UNSPECIFIED"

Accepted value types for the action value

Properties

Name Type Required Restrictions Description
Accepted value types for the action value string false none none

Enumerated Values

Property Value
Accepted value types for the action value VALUE_TYPE_UNSPECIFIED
Accepted value types for the action value VALUE_TYPE_STRING
Accepted value types for the action value VALUE_TYPE_INT
Accepted value types for the action value VALUE_TYPE_LONG
Accepted value types for the action value VALUE_TYPE_FLOAT
Accepted value types for the action value VALUE_TYPE_DATETIME
Accepted value types for the action value VALUE_TYPE_BOOL

mycujoo.actions.v1beta1.CreateActionConfigurationRequest

{
  "action_id": "string",
  "fields": [
    {
      "bool_value": true,
      "datetime_value": "2019-08-24T14:15:22Z",
      "field": "string",
      "float_value": 0.1,
      "number_value": "string",
      "string_value": "string"
    }
  ],
  "group_id": "string",
  "title": "string"
}

Properties

Name Type Required Restrictions Description
action_id string false none none
fields [mycujoo.actions.v1beta1.ActionConfigurationField] false none none
group_id string false none none
title string false none none

mycujoo.actions.v1beta1.CreateActionConfigurationResponse

{
  "action_configuration": {
    "action_id": "string",
    "fields": [
      {
        "bool_value": true,
        "datetime_value": "2019-08-24T14:15:22Z",
        "field": "string",
        "float_value": 0.1,
        "number_value": "string",
        "string_value": "string"
      }
    ],
    "group_id": "string",
    "id": "string",
    "order": 0,
    "title": "string"
  }
}

Properties

Name Type Required Restrictions Description
action_configuration mycujoo.actions.v1beta1.ActionConfiguration false none none

mycujoo.actions.v1beta1.DeleteActionConfigurationResponse

{}

Properties

None

mycujoo.actions.v1beta1.GetActionCallResponse

{
  "action_call": {
    "configuration_id": "string",
    "group_id": "string",
    "id": "string",
    "request_data": {
      "data": {},
      "id": "string"
    },
    "response_data": {
      "data": {},
      "id": "string"
    },
    "state": "ACTION_CALL_STATE_UNSPECIFIED"
  }
}

Properties

Name Type Required Restrictions Description
action_call mycujoo.actions.v1beta1.ActionCall false none none

mycujoo.actions.v1beta1.GetActionConfigurationResponse

{
  "action_configuration": {
    "action_id": "string",
    "fields": [
      {
        "bool_value": true,
        "datetime_value": "2019-08-24T14:15:22Z",
        "field": "string",
        "float_value": 0.1,
        "number_value": "string",
        "string_value": "string"
      }
    ],
    "group_id": "string",
    "id": "string",
    "order": 0,
    "title": "string"
  }
}

Properties

Name Type Required Restrictions Description
action_configuration mycujoo.actions.v1beta1.ActionConfiguration false none none

mycujoo.actions.v1beta1.GetActionResponse

{
  "action": {
    "action_fields": [
      {
        "bool_value": true,
        "datetime_value": "2019-08-24T14:15:22Z",
        "float_value": 0.1,
        "is_configurable": true,
        "is_required": true,
        "label": "string",
        "name": "string",
        "no_default_value": true,
        "number_value": "string",
        "string_value": "string",
        "validators": [
          {
            "max": 0,
            "min": 0,
            "regex": "string"
          }
        ],
        "value_options": [
          {
            "bool_value": true,
            "datetime_value": "2019-08-24T14:15:22Z",
            "float_value": 0.1,
            "label": "string",
            "number_value": "string",
            "string_value": "string"
          }
        ],
        "value_type": "VALUE_TYPE_UNSPECIFIED"
      }
    ],
    "category_id": "string",
    "description": "string",
    "icon_url": "string",
    "id": "string",
    "is_active": true,
    "request_schema_id": "string",
    "request_topic": "string",
    "response_schema_id": "string",
    "response_topic": "string",
    "service_id": "string",
    "title": "string"
  }
}

Properties

Name Type Required Restrictions Description
action mycujoo.actions.v1beta1.Action false none none

mycujoo.actions.v1beta1.ListAction

{
  "category_id": "string",
  "description": "string",
  "icon_url": "string",
  "id": "string",
  "is_active": true,
  "service_id": "string",
  "title": "string"
}

Properties

Name Type Required Restrictions Description
category_id string false none none
description string false none none
icon_url string false none none
id string false none none
is_active boolean false none none
service_id string false none none
title string false none none

mycujoo.actions.v1beta1.ListActionCallsResponse

{
  "items": [
    {
      "configuration_id": "string",
      "group_id": "string",
      "id": "string",
      "request_data": {
        "data": {},
        "id": "string"
      },
      "response_data": {
        "data": {},
        "id": "string"
      },
      "state": "ACTION_CALL_STATE_UNSPECIFIED"
    }
  ]
}

Properties

Name Type Required Restrictions Description
items [mycujoo.actions.v1beta1.ActionCall] false none none

mycujoo.actions.v1beta1.ListActionCategoriesResponse

{
  "items": [
    {
      "description": "string",
      "id": "string",
      "menu_title": "string",
      "title": "string"
    }
  ],
  "next_page_token": "string"
}

Properties

Name Type Required Restrictions Description
items [mycujoo.actions.v1beta1.ActionCategory] false none none
next_page_token string false none none

mycujoo.actions.v1beta1.ListActionConfiguration

{
  "action_id": "string",
  "action_title": "string",
  "group_id": "string",
  "id": "string",
  "order": 0,
  "title": "string"
}

Properties

Name Type Required Restrictions Description
action_id string false none none
action_title string false none none
group_id string false none none
id string false none none
order integer(int32) false none none
title string false none none

mycujoo.actions.v1beta1.ListActionConfigurationsResponse

{
  "items": [
    {
      "action_id": "string",
      "action_title": "string",
      "group_id": "string",
      "id": "string",
      "order": 0,
      "title": "string"
    }
  ]
}

Properties

Name Type Required Restrictions Description
items [mycujoo.actions.v1beta1.ListActionConfiguration] false none none

mycujoo.actions.v1beta1.ListActionsResponse

{
  "items": [
    {
      "category_id": "string",
      "description": "string",
      "icon_url": "string",
      "id": "string",
      "is_active": true,
      "service_id": "string",
      "title": "string"
    }
  ],
  "next_page_token": "string"
}

Properties

Name Type Required Restrictions Description
items [mycujoo.actions.v1beta1.ListAction] false none none
next_page_token string false none none

mycujoo.actions.v1beta1.OptionValue

{
  "bool_value": true,
  "datetime_value": "2019-08-24T14:15:22Z",
  "float_value": 0.1,
  "label": "string",
  "number_value": "string",
  "string_value": "string"
}

Option used for static value from a list

Properties

Name Type Required Restrictions Description
bool_value boolean false none none
datetime_value string(date-time) false none none
float_value number(float) false none none
label string false none none
number_value string(int64) false none none
string_value string false none none

mycujoo.actions.v1beta1.UpdateActionCallRequestFields

{
  "data": {}
}

Properties

Name Type Required Restrictions Description
data object false none none

mycujoo.actions.v1beta1.UpdateActionCallResponse

{
  "action_call": {
    "configuration_id": "string",
    "group_id": "string",
    "id": "string",
    "request_data": {
      "data": {},
      "id": "string"
    },
    "response_data": {
      "data": {},
      "id": "string"
    },
    "state": "ACTION_CALL_STATE_UNSPECIFIED"
  }
}

Properties

Name Type Required Restrictions Description
action_call mycujoo.actions.v1beta1.ActionCall false none none

mycujoo.actions.v1beta1.UpdateActionConfigurationRequestFields

{
  "fields": [
    {
      "bool_value": true,
      "datetime_value": "2019-08-24T14:15:22Z",
      "field": "string",
      "float_value": 0.1,
      "number_value": "string",
      "string_value": "string"
    }
  ],
  "order": 0,
  "title": "string"
}

Properties

Name Type Required Restrictions Description
fields [mycujoo.actions.v1beta1.ActionConfigurationField] false none none
order integer(int32) false none none
title string false none none

mycujoo.actions.v1beta1.UpdateActionConfigurationResponse

{
  "action_configuration": {
    "action_id": "string",
    "fields": [
      {
        "bool_value": true,
        "datetime_value": "2019-08-24T14:15:22Z",
        "field": "string",
        "float_value": 0.1,
        "number_value": "string",
        "string_value": "string"
      }
    ],
    "group_id": "string",
    "id": "string",
    "order": 0,
    "title": "string"
  }
}

Properties

Name Type Required Restrictions Description
action_configuration mycujoo.actions.v1beta1.ActionConfiguration false none none

mycujoo.actions.v1beta1.UpdateActionRequestFields

{
  "action_fields": [
    {
      "bool_value": true,
      "datetime_value": "2019-08-24T14:15:22Z",
      "float_value": 0.1,
      "is_configurable": true,
      "is_required": true,
      "label": "string",
      "name": "string",
      "no_default_value": true,
      "number_value": "string",
      "string_value": "string",
      "validators": [
        {
          "max": 0,
          "min": 0,
          "regex": "string"
        }
      ],
      "value_options": [
        {
          "bool_value": true,
          "datetime_value": "2019-08-24T14:15:22Z",
          "float_value": 0.1,
          "label": "string",
          "number_value": "string",
          "string_value": "string"
        }
      ],
      "value_type": "VALUE_TYPE_UNSPECIFIED"
    }
  ],
  "category_id": "string",
  "description": "string",
  "icon_url": "string",
  "is_active": true,
  "request_schema_id": "string",
  "request_topic": "string",
  "response_schema_id": "string",
  "response_topic": "string",
  "service_id": "string",
  "title": "string"
}

Properties

Name Type Required Restrictions Description
action_fields [mycujoo.actions.v1beta1.ActionField] false none none
category_id string false none none
description string false none none
icon_url string false none none
is_active boolean false none none
request_schema_id string false none none
request_topic string false none none
response_schema_id string false none none
response_topic string false none none
service_id string false none none
title string false none none

mycujoo.analytics.v1.AveragePlaytimePoint

{
  "average_playtime": 0.1,
  "time": "2019-08-24T14:15:22Z"
}

Properties

Name Type Required Restrictions Description
average_playtime number(float) false none none
time string(date-time) false none none

mycujoo.analytics.v1.BufferRatioPoint

{
  "ratio": 0.1,
  "time": "2019-08-24T14:15:22Z"
}

Properties

Name Type Required Restrictions Description
ratio number(float) false none none
time string(date-time) false none none

mycujoo.analytics.v1.BufferRatioTimeSeries

{
  "content_type": "CONTENT_TYPE_UNSPECIFIED",
  "points": [
    {
      "ratio": 0.1,
      "time": "2019-08-24T14:15:22Z"
    }
  ]
}

Properties

Name Type Required Restrictions Description
content_type mycujoo.analytics.v1.ContentType false none none
points [mycujoo.analytics.v1.BufferRatioPoint] false none none

mycujoo.analytics.v1.ConcurrentPlaysPoint

{
  "plays": 0,
  "time": "2019-08-24T14:15:22Z"
}

Properties

Name Type Required Restrictions Description
plays integer(int32) false none none
time string(date-time) false none none

mycujoo.analytics.v1.ContentType

"CONTENT_TYPE_UNSPECIFIED"

Properties

Name Type Required Restrictions Description
anonymous string false none none

Enumerated Values

Property Value
anonymous CONTENT_TYPE_UNSPECIFIED
anonymous CONTENT_TYPE_VOD
anonymous CONTENT_TYPE_LIVE

mycujoo.analytics.v1.GetBufferRatioTimeSeriesResponse

{
  "time_series": [
    {
      "content_type": "CONTENT_TYPE_UNSPECIFIED",
      "points": [
        {
          "ratio": 0.1,
          "time": "2019-08-24T14:15:22Z"
        }
      ]
    }
  ],
  "time_step": "TIME_STEP_UNSPECIFIED"
}

Properties

Name Type Required Restrictions Description
time_series [mycujoo.analytics.v1.BufferRatioTimeSeries] false none none
time_step mycujoo.analytics.v1.TimeStep false none none

mycujoo.analytics.v1.GetConcurrentPlaysTimeSeriesResponse

{
  "concurrent_plays": [
    {
      "plays": 0,
      "time": "2019-08-24T14:15:22Z"
    }
  ],
  "time_step": "TIME_STEP_UNSPECIFIED"
}

Properties

Name Type Required Restrictions Description
concurrent_plays [mycujoo.analytics.v1.ConcurrentPlaysPoint] false none none
time_step mycujoo.analytics.v1.TimeStep false none none

mycujoo.analytics.v1.GetMediaSourceStatsSnapshotBatchResponse

{
  "snapshots": [
    {
      "media_source_id": "string",
      "snapshot": {
        "audio_bit_rate": 0,
        "bit_rate": 0,
        "connection_count": 0,
        "frame_rate": 0.1,
        "key_frame_consistent": true,
        "key_frame_interval": 0.1,
        "time": "2019-08-24T14:15:22Z",
        "video_height": 0
      }
    }
  ]
}

Properties

Name Type Required Restrictions Description
snapshots [mycujoo.analytics.v1.MediaSourceStatsSnapshot] false none none

mycujoo.analytics.v1.GetMediaSourceStatsSnapshotResponse

{
  "snapshot": {
    "audio_bit_rate": 0,
    "bit_rate": 0,
    "connection_count": 0,
    "frame_rate": 0.1,
    "key_frame_consistent": true,
    "key_frame_interval": 0.1,
    "time": "2019-08-24T14:15:22Z",
    "video_height": 0
  }
}

Properties

Name Type Required Restrictions Description
snapshot mycujoo.analytics.v1.MediaSourceStatsPoint false none none

mycujoo.analytics.v1.GetMediaSourceStatsTimeSeriesResponse

{
  "time_series": [
    {
      "audio_bit_rate": 0,
      "bit_rate": 0,
      "connection_count": 0,
      "frame_rate": 0.1,
      "key_frame_consistent": true,
      "key_frame_interval": 0.1,
      "time": "2019-08-24T14:15:22Z",
      "video_height": 0
    }
  ]
}

Properties

Name Type Required Restrictions Description
time_series [mycujoo.analytics.v1.MediaSourceStatsPoint] false none none

mycujoo.analytics.v1.GetProjectAveragePlaytimeTimeSeriesResponse

{
  "average_playtime_points": [
    {
      "average_playtime": 0.1,
      "time": "2019-08-24T14:15:22Z"
    }
  ],
  "time_step": "TIME_STEP_UNSPECIFIED"
}

Properties

Name Type Required Restrictions Description
average_playtime_points [mycujoo.analytics.v1.AveragePlaytimePoint] false none none
time_step mycujoo.analytics.v1.TimeStep false none none

mycujoo.analytics.v1.GetProjectConsumptionStatsResponse

{
  "average_watch_time": {
    "content_type_watch_time": [
      {
        "content_type": "CONTENT_TYPE_UNSPECIFIED",
        "minutes": 0.1
      }
    ],
    "total_minutes": 0.1
  },
  "project_id": "string",
  "unique_users": {
    "content_type_users": [
      {
        "content_type": "CONTENT_TYPE_UNSPECIFIED",
        "users_count": 0
      }
    ],
    "total_users": 0
  },
  "watch_time": {
    "content_type_watch_time": [
      {
        "content_type": "CONTENT_TYPE_UNSPECIFIED",
        "minutes": 0.1
      }
    ],
    "total_minutes": 0.1
  }
}

Properties

Name Type Required Restrictions Description
average_watch_time mycujoo.analytics.v1.WatchTime false none none
project_id string false none none
unique_users mycujoo.analytics.v1.UniqueUsers false none none
watch_time mycujoo.analytics.v1.WatchTime false none none

mycujoo.analytics.v1.GetProjectTotalPlaysTimeSeriesResponse

{
  "time_step": "TIME_STEP_UNSPECIFIED",
  "total_plays_points": [
    {
      "plays": 0,
      "time": "2019-08-24T14:15:22Z"
    }
  ]
}

Properties

Name Type Required Restrictions Description
time_step mycujoo.analytics.v1.TimeStep false none none
total_plays_points [mycujoo.analytics.v1.TotalPlaysPoint] false none none

mycujoo.analytics.v1.GetProjectTotalPlaytimeTimeSeriesResponse

{
  "time_step": "TIME_STEP_UNSPECIFIED",
  "total_playtime_points": [
    {
      "time": "2019-08-24T14:15:22Z",
      "total_playtime": 0.1
    }
  ]
}

Properties

Name Type Required Restrictions Description
time_step mycujoo.analytics.v1.TimeStep false none none
total_playtime_points [mycujoo.analytics.v1.TotalPlaytimePoint] false none none

mycujoo.analytics.v1.GetProjectUniqueUsersTimeSeriesResponse

{
  "time_step": "TIME_STEP_UNSPECIFIED",
  "unique_users_points": [
    {
      "time": "2019-08-24T14:15:22Z",
      "unique_users": 0
    }
  ]
}

Properties

Name Type Required Restrictions Description
time_step mycujoo.analytics.v1.TimeStep false none none
unique_users_points [mycujoo.analytics.v1.UniqueUsersPoint] false none none

mycujoo.analytics.v1.GetStreamConsumptionStatsResponse

{
  "average_watch_time": {
    "content_type_watch_time": [
      {
        "content_type": "CONTENT_TYPE_UNSPECIFIED",
        "minutes": 0.1
      }
    ],
    "total_minutes": 0.1
  },
  "stream_id": "string",
  "unique_users": {
    "content_type_users": [
      {
        "content_type": "CONTENT_TYPE_UNSPECIFIED",
        "users_count": 0
      }
    ],
    "total_users": 0
  },
  "watch_time": {
    "content_type_watch_time": [
      {
        "content_type": "CONTENT_TYPE_UNSPECIFIED",
        "minutes": 0.1
      }
    ],
    "total_minutes": 0.1
  }
}

Properties

Name Type Required Restrictions Description
average_watch_time mycujoo.analytics.v1.WatchTime false none none
stream_id string false none none
unique_users mycujoo.analytics.v1.UniqueUsers false none none
watch_time mycujoo.analytics.v1.WatchTime false none none

mycujoo.analytics.v1.GetStreamStatsResponse

{
  "buffer_ratio_time_series": [
    {
      "content_type": "CONTENT_TYPE_UNSPECIFIED",
      "points": [
        {
          "ratio": 0.1,
          "time": "2019-08-24T14:15:22Z"
        }
      ]
    }
  ],
  "concurrent_plays_time_series": [
    {
      "plays": 0,
      "time": "2019-08-24T14:15:22Z"
    }
  ],
  "total_users_time_series": [
    {
      "content_type": "CONTENT_TYPE_UNSPECIFIED",
      "users_count": 0
    }
  ],
  "video_stats_time_series": [
    {
      "audio_bit_rate": 0,
      "bit_rate": 0,
      "connection_count": 0,
      "frame_rate": 0.1,
      "key_frame_consistent": true,
      "key_frame_interval": 0.1,
      "resolution": 0,
      "time": "2019-08-24T14:15:22Z"
    }
  ]
}

Properties

Name Type Required Restrictions Description
buffer_ratio_time_series [mycujoo.analytics.v1.BufferRatioTimeSeries] false none none
concurrent_plays_time_series [mycujoo.analytics.v1.ConcurrentPlaysPoint] false none none
total_users_time_series [mycujoo.analytics.v1.TotalUsersRecord] false none none
video_stats_time_series [mycujoo.analytics.v1.VideoStatsPoint] false none none

mycujoo.analytics.v1.GetTotalUsersResponse

{
  "stream_id": "string",
  "total_users": [
    {
      "content_type": "CONTENT_TYPE_UNSPECIFIED",
      "users_count": 0
    }
  ]
}

Properties

Name Type Required Restrictions Description
stream_id string false none none
total_users [mycujoo.analytics.v1.TotalUsersRecord] false none none

mycujoo.analytics.v1.GetVideoStatsSnapshotBatchResponse

{
  "snapshots": [
    {
      "snapshot": {
        "audio_bit_rate": 0,
        "bit_rate": 0,
        "connection_count": 0,
        "frame_rate": 0.1,
        "key_frame_consistent": true,
        "key_frame_interval": 0.1,
        "resolution": 0,
        "time": "2019-08-24T14:15:22Z"
      },
      "stream_id": "string"
    }
  ]
}

Properties

Name Type Required Restrictions Description
snapshots [mycujoo.analytics.v1.VideoStatsSnapshot] false none none

mycujoo.analytics.v1.GetVideoStatsSnapshotResponse

{
  "snapshot": {
    "audio_bit_rate": 0,
    "bit_rate": 0,
    "connection_count": 0,
    "frame_rate": 0.1,
    "key_frame_consistent": true,
    "key_frame_interval": 0.1,
    "resolution": 0,
    "time": "2019-08-24T14:15:22Z"
  }
}

Properties

Name Type Required Restrictions Description
snapshot mycujoo.analytics.v1.VideoStatsPoint false none none

mycujoo.analytics.v1.GetVideoStatsTimeSeriesResponse

{
  "time_series": [
    {
      "audio_bit_rate": 0,
      "bit_rate": 0,
      "connection_count": 0,
      "frame_rate": 0.1,
      "key_frame_consistent": true,
      "key_frame_interval": 0.1,
      "resolution": 0,
      "time": "2019-08-24T14:15:22Z"
    }
  ]
}

Properties

Name Type Required Restrictions Description
time_series [mycujoo.analytics.v1.VideoStatsPoint] false none none

mycujoo.analytics.v1.ListStreamActivityLogsResponse

{
  "activities": [
    {
      "create_time": "2019-08-24T14:15:22Z",
      "description": "string",
      "id": "string",
      "name": "string",
      "source": "string"
    }
  ],
  "next_page_token": "string"
}

Properties

Name Type Required Restrictions Description
activities [mycujoo.analytics.v1.StreamActivityLog] false none none
next_page_token string false none A token that can be sent as page_token to retrieve the next page.
If this field is omitted, there are no subsequent pages.

mycujoo.analytics.v1.ListStreamStatSummariesResponse

{
  "next_page_token": "string",
  "streams": [
    {
      "average_live_buffer_ratio": 0.1,
      "average_play_time": 0.1,
      "average_vod_buffer_ratio": 0.1,
      "stream_id": "string",
      "title": "string",
      "total_plays": 0,
      "total_playtime": 0.1,
      "total_users": 0
    }
  ]
}

Properties

Name Type Required Restrictions Description
next_page_token string false none A token that can be sent as page_token to retrieve the next page.
If this field is omitted, there are no subsequent pages.
streams [mycujoo.analytics.v1.StreamStatSummary] false none none

mycujoo.analytics.v1.ListWatchEventsResponse

{
  "next_page_token": "string",
  "watch_events": [
    {
      "cdn": "string",
      "city": "string",
      "connection_type": "string",
      "country_code": "string",
      "device_name": "string",
      "effective_time": "string",
      "event_time": "2019-08-24T14:15:22Z",
      "event_type": "string",
      "happiness_score": 0.1,
      "has_error": true,
      "identity_id": "string",
      "ip": "string",
      "isp": "string",
      "session_id": "string",
      "stream_id": "string",
      "title": "string",
      "type_view": "CONTENT_TYPE_UNSPECIFIED",
      "watch_duration": "string"
    }
  ]
}

Properties

Name Type Required Restrictions Description
next_page_token string false none A token that can be sent as page_token to retrieve the next page.
If this field is omitted, there are no subsequent pages.
watch_events [mycujoo.analytics.v1.WatchEvent] false none none

mycujoo.analytics.v1.MediaSourceStatsPoint

{
  "audio_bit_rate": 0,
  "bit_rate": 0,
  "connection_count": 0,
  "frame_rate": 0.1,
  "key_frame_consistent": true,
  "key_frame_interval": 0.1,
  "time": "2019-08-24T14:15:22Z",
  "video_height": 0
}

Properties

Name Type Required Restrictions Description
audio_bit_rate integer(int32) false none none
bit_rate integer(int32) false none none
connection_count integer(int32) false none none
frame_rate number(double) false none none
key_frame_consistent boolean false none none
key_frame_interval number(double) false none none
time string(date-time) false none none
video_height integer(int32) false none none

mycujoo.analytics.v1.MediaSourceStatsSnapshot

{
  "media_source_id": "string",
  "snapshot": {
    "audio_bit_rate": 0,
    "bit_rate": 0,
    "connection_count": 0,
    "frame_rate": 0.1,
    "key_frame_consistent": true,
    "key_frame_interval": 0.1,
    "time": "2019-08-24T14:15:22Z",
    "video_height": 0
  }
}

Properties

Name Type Required Restrictions Description
media_source_id string false none none
snapshot mycujoo.analytics.v1.MediaSourceStatsPoint false none none

mycujoo.analytics.v1.StreamActivityLog

{
  "create_time": "2019-08-24T14:15:22Z",
  "description": "string",
  "id": "string",
  "name": "string",
  "source": "string"
}

Properties

Name Type Required Restrictions Description
create_time string(date-time) false none none
description string false none none
id string false none none
name string false none none
source string false none none

mycujoo.analytics.v1.StreamStatSummary

{
  "average_live_buffer_ratio": 0.1,
  "average_play_time": 0.1,
  "average_vod_buffer_ratio": 0.1,
  "stream_id": "string",
  "title": "string",
  "total_plays": 0,
  "total_playtime": 0.1,
  "total_users": 0
}

Properties

Name Type Required Restrictions Description
average_live_buffer_ratio number(float) false none none
average_play_time number(float) false none none
average_vod_buffer_ratio number(float) false none none
stream_id string false none none
title string false none none
total_plays integer(int32) false none none
total_playtime number(float) false none none
total_users integer(int32) false none none

mycujoo.analytics.v1.TimeStep

"TIME_STEP_UNSPECIFIED"

Properties

Name Type Required Restrictions Description
anonymous string false none none

Enumerated Values

Property Value
anonymous TIME_STEP_UNSPECIFIED
anonymous TIME_STEP_MINUTE
anonymous TIME_STEP_HOUR
anonymous TIME_STEP_DAY
anonymous TIME_STEP_MONTH
anonymous TIME_STEP_YEAR

mycujoo.analytics.v1.TotalPlaysPoint

{
  "plays": 0,
  "time": "2019-08-24T14:15:22Z"
}

Properties

Name Type Required Restrictions Description
plays integer(int32) false none none
time string(date-time) false none none

mycujoo.analytics.v1.TotalPlaytimePoint

{
  "time": "2019-08-24T14:15:22Z",
  "total_playtime": 0.1
}

Properties

Name Type Required Restrictions Description
time string(date-time) false none none
total_playtime number(float) false none Sum of all play times at given point in minutes.

mycujoo.analytics.v1.TotalUsersRecord

{
  "content_type": "CONTENT_TYPE_UNSPECIFIED",
  "users_count": 0
}

Properties

Name Type Required Restrictions Description
content_type mycujoo.analytics.v1.ContentType false none none
users_count integer(int32) false none none

mycujoo.analytics.v1.UniqueUsers

{
  "content_type_users": [
    {
      "content_type": "CONTENT_TYPE_UNSPECIFIED",
      "users_count": 0
    }
  ],
  "total_users": 0
}

Properties

Name Type Required Restrictions Description
content_type_users [mycujoo.analytics.v1.TotalUsersRecord] false none none
total_users integer(int32) false none none

mycujoo.analytics.v1.UniqueUsersPoint

{
  "time": "2019-08-24T14:15:22Z",
  "unique_users": 0
}

Properties

Name Type Required Restrictions Description
time string(date-time) false none none
unique_users integer(int32) false none none

mycujoo.analytics.v1.VideoStatsPoint

{
  "audio_bit_rate": 0,
  "bit_rate": 0,
  "connection_count": 0,
  "frame_rate": 0.1,
  "key_frame_consistent": true,
  "key_frame_interval": 0.1,
  "resolution": 0,
  "time": "2019-08-24T14:15:22Z"
}

Properties

Name Type Required Restrictions Description
audio_bit_rate integer(int32) false none none
bit_rate integer(int32) false none none
connection_count integer(int32) false none none
frame_rate number(double) false none none
key_frame_consistent boolean false none none
key_frame_interval number(double) false none none
resolution integer(int32) false none none
time string(date-time) false none none

mycujoo.analytics.v1.VideoStatsSnapshot

{
  "snapshot": {
    "audio_bit_rate": 0,
    "bit_rate": 0,
    "connection_count": 0,
    "frame_rate": 0.1,
    "key_frame_consistent": true,
    "key_frame_interval": 0.1,
    "resolution": 0,
    "time": "2019-08-24T14:15:22Z"
  },
  "stream_id": "string"
}

Properties

Name Type Required Restrictions Description
snapshot mycujoo.analytics.v1.VideoStatsPoint false none none
stream_id string false none none

mycujoo.analytics.v1.WatchEvent

{
  "cdn": "string",
  "city": "string",
  "connection_type": "string",
  "country_code": "string",
  "device_name": "string",
  "effective_time": "string",
  "event_time": "2019-08-24T14:15:22Z",
  "event_type": "string",
  "happiness_score": 0.1,
  "has_error": true,
  "identity_id": "string",
  "ip": "string",
  "isp": "string",
  "session_id": "string",
  "stream_id": "string",
  "title": "string",
  "type_view": "CONTENT_TYPE_UNSPECIFIED",
  "watch_duration": "string"
}

Properties

Name Type Required Restrictions Description
cdn string false none none
city string false none none
connection_type string false none none
country_code string false none none
device_name string false none none
effective_time string false none none
event_time string(date-time) false none none
event_type string false none none
happiness_score number(float) false none none
has_error boolean false none Used to find if the event had any kind of error.
identity_id string false none Identity behind watch event. If playback is anonymous - then it is a random identifier that rarely changes.
ip string false none none
isp string false none none
session_id string false none none
stream_id string false none none
title string false none none
type_view mycujoo.analytics.v1.ContentType false none none
watch_duration string false none none

mycujoo.analytics.v1.WatchTime

{
  "content_type_watch_time": [
    {
      "content_type": "CONTENT_TYPE_UNSPECIFIED",
      "minutes": 0.1
    }
  ],
  "total_minutes": 0.1
}

Properties

Name Type Required Restrictions Description
content_type_watch_time [mycujoo.analytics.v1.WatchTimeRecord] false none none
total_minutes number(float) false none none

mycujoo.analytics.v1.WatchTimeRecord

{
  "content_type": "CONTENT_TYPE_UNSPECIFIED",
  "minutes": 0.1
}

Properties

Name Type Required Restrictions Description
content_type mycujoo.analytics.v1.ContentType false none none
minutes number(float) false none none

mycujoo.analytics.v1beta1.Content

{
  "media_resource": "string",
  "origin": "string",
  "stream_id": "string",
  "streaming_protocol": "string",
  "title": "string",
  "type_view": "CONTENT_TYPE_UNSPECIFIED"
}

Properties

Name Type Required Restrictions Description
media_resource string false none none
origin string false none none
stream_id string false none none
streaming_protocol string false none none
title string false none none
type_view mycujoo.analytics.v1beta1.ContentType false none none

mycujoo.analytics.v1beta1.ContentType

"CONTENT_TYPE_UNSPECIFIED"

Properties

Name Type Required Restrictions Description
anonymous string false none none

Enumerated Values

Property Value
anonymous CONTENT_TYPE_UNSPECIFIED
anonymous CONTENT_TYPE_VOD
anonymous CONTENT_TYPE_LIVE

mycujoo.analytics.v1beta1.Device

{
  "browser_name": "string",
  "browser_version": "string",
  "model": "string",
  "os": "string",
  "os_version": "string",
  "player": "string",
  "plugin_version": "string",
  "type": "string",
  "vendor": "string"
}

Properties

Name Type Required Restrictions Description
browser_name string false none none
browser_version string false none none
model string false none none
os string false none none
os_version string false none none
player string false none none
plugin_version string false none none
type string false none none
vendor string false none none

mycujoo.analytics.v1beta1.Event

{
  "buffer_duration": "string",
  "event_time": "2019-08-24T14:15:22Z",
  "event_type": "string",
  "offset": "string",
  "play_head": "string",
  "rendition": "string"
}

Properties

Name Type Required Restrictions Description
buffer_duration string false none none
event_time string(date-time) false none none
event_type string false none none
offset string false none none
play_head string false none none
rendition string false none none

mycujoo.analytics.v1beta1.Geolocation

{
  "city": "string",
  "country_code": "string",
  "region": "string"
}

Properties

Name Type Required Restrictions Description
city string false none none
country_code string false none none
region string false none none

mycujoo.analytics.v1beta1.GetSessionResponse

{
  "content": {
    "media_resource": "string",
    "origin": "string",
    "stream_id": "string",
    "streaming_protocol": "string",
    "title": "string",
    "type_view": "CONTENT_TYPE_UNSPECIFIED"
  },
  "device": {
    "browser_name": "string",
    "browser_version": "string",
    "model": "string",
    "os": "string",
    "os_version": "string",
    "player": "string",
    "plugin_version": "string",
    "type": "string",
    "vendor": "string"
  },
  "effective_watch_duration": "string",
  "events": [
    {
      "buffer_duration": "string",
      "event_time": "2019-08-24T14:15:22Z",
      "event_type": "string",
      "offset": "string",
      "play_head": "string",
      "rendition": "string"
    }
  ],
  "geolocation": {
    "city": "string",
    "country_code": "string",
    "region": "string"
  },
  "identity": {
    "happiness_score": 0.1,
    "identity_id": "string",
    "is_registered": true
  },
  "network": {
    "cdn": "string",
    "connection_type": "string",
    "isp": "string"
  },
  "quality": {
    "buffer_ratio": 0.1,
    "buffers_count": 0,
    "error_description": "string",
    "error_metadata": "string",
    "error_player_code": "string",
    "error_type": "string",
    "join_time": "string"
  },
  "session_end": "2019-08-24T14:15:22Z",
  "session_id": "string",
  "session_start": "2019-08-24T14:15:22Z",
  "watch_duration": "string"
}

Properties

Name Type Required Restrictions Description
content mycujoo.analytics.v1beta1.Content false none none
device mycujoo.analytics.v1beta1.Device false none none
effective_watch_duration string false none This watch time is computed without taking into account
the join time, buffer time, ads time, seek time and
pause time. So shows the actual time that the users
have been engaged with a given video.
events [mycujoo.analytics.v1beta1.Event] false none none
geolocation mycujoo.analytics.v1beta1.Geolocation false none none
identity mycujoo.analytics.v1beta1.Identity false none none
network mycujoo.analytics.v1beta1.Network false none none
quality mycujoo.analytics.v1beta1.Quality false none none
session_end string(date-time) false none none
session_id string false none none
session_start string(date-time) false none none
watch_duration string false none none

mycujoo.analytics.v1beta1.Identity

{
  "happiness_score": 0.1,
  "identity_id": "string",
  "is_registered": true
}

Properties

Name Type Required Restrictions Description
happiness_score number(float) false none none
identity_id string false none Identity behind watch event. If playback is anonymous - then it is a random identifier that rarely changes.
is_registered boolean false none none

mycujoo.analytics.v1beta1.Network

{
  "cdn": "string",
  "connection_type": "string",
  "isp": "string"
}

Properties

Name Type Required Restrictions Description
cdn string false none none
connection_type string false none none
isp string false none none

mycujoo.analytics.v1beta1.Quality

{
  "buffer_ratio": 0.1,
  "buffers_count": 0,
  "error_description": "string",
  "error_metadata": "string",
  "error_player_code": "string",
  "error_type": "string",
  "join_time": "string"
}

Properties

Name Type Required Restrictions Description
buffer_ratio number(float) false none Reports the ratio of length of time users have
experienced buffering during a video session.
buffers_count integer(int32) false none none
error_description string false none none
error_metadata string false none none
error_player_code string false none none
error_type string false none none
join_time string false none Reports time it takes the player to
establish a connection with the stream and play the
first frame after the play button is hit or the player
initiates a play sequence on auto-play mode.

mycujoo.annotations.v1beta1.Annotation

{
  "action_call_ids": [
    "string"
  ],
  "create_time": "2019-08-24T14:15:22Z",
  "id": "string",
  "offset": "string",
  "timeline_id": "string",
  "type_id": "string"
}

Properties

Name Type Required Restrictions Description
action_call_ids [string] false none none
create_time string(date-time) false none none
id string false none none
offset string(int64) false none none
timeline_id string false none none
type_id string false none none

mycujoo.annotations.v1beta1.AnnotationSet

{
  "id": "string",
  "title": "string"
}

Properties

Name Type Required Restrictions Description
id string false none none
title string false none none

mycujoo.annotations.v1beta1.AnnotationType

{
  "action_configuration_ids": [
    "string"
  ],
  "id": "string",
  "set_id": "string",
  "title": "string"
}

Properties

Name Type Required Restrictions Description
action_configuration_ids [string] false none none
id string false none none
set_id string false none none
title string false none none

mycujoo.annotations.v1beta1.CreateAnnotationRequest

{
  "live": {
    "time": "2019-08-24T14:15:22Z"
  },
  "live_vod": {
    "offset": "string",
    "time": "2019-08-24T14:15:22Z"
  },
  "timeline_id": "string",
  "type_id": "string",
  "uploaded": {
    "offset": "string"
  }
}

Properties

Name Type Required Restrictions Description
live mycujoo.annotations.v1beta1.CreateAnnotationRequest.Live false none none
live_vod mycujoo.annotations.v1beta1.CreateAnnotationRequest.LiveVOD false none none
timeline_id string false none none
type_id string false none none
uploaded mycujoo.annotations.v1beta1.CreateAnnotationRequest.Uploaded false none none

mycujoo.annotations.v1beta1.CreateAnnotationRequest.Live

{
  "time": "2019-08-24T14:15:22Z"
}

Properties

Name Type Required Restrictions Description
time string(date-time) false none none

mycujoo.annotations.v1beta1.CreateAnnotationRequest.LiveVOD

{
  "offset": "string",
  "time": "2019-08-24T14:15:22Z"
}

Properties

Name Type Required Restrictions Description
offset string(int64) false none none
time string(date-time) false none none

mycujoo.annotations.v1beta1.CreateAnnotationRequest.Uploaded

{
  "offset": "string"
}

Properties

Name Type Required Restrictions Description
offset string(int64) false none none

mycujoo.annotations.v1beta1.CreateAnnotationResponse

{
  "annotation": {
    "action_call_ids": [
      "string"
    ],
    "create_time": "2019-08-24T14:15:22Z",
    "id": "string",
    "offset": "string",
    "timeline_id": "string",
    "type_id": "string"
  }
}

Properties

Name Type Required Restrictions Description
annotation mycujoo.annotations.v1beta1.Annotation false none none

mycujoo.annotations.v1beta1.CreateAnnotationSetRequest

{
  "title": "string"
}

Properties

Name Type Required Restrictions Description
title string false none none

mycujoo.annotations.v1beta1.CreateAnnotationSetResponse

{
  "set": {
    "id": "string",
    "title": "string"
  }
}

Properties

Name Type Required Restrictions Description
set mycujoo.annotations.v1beta1.AnnotationSet false none none

mycujoo.annotations.v1beta1.CreateAnnotationTypeRequest

{
  "set_id": "string",
  "title": "string"
}

Properties

Name Type Required Restrictions Description
set_id string false none none
title string false none none

mycujoo.annotations.v1beta1.CreateAnnotationTypeResponse

{
  "type": {
    "action_configuration_ids": [
      "string"
    ],
    "id": "string",
    "set_id": "string",
    "title": "string"
  }
}

Properties

Name Type Required Restrictions Description
type mycujoo.annotations.v1beta1.AnnotationType false none none

mycujoo.annotations.v1beta1.DeleteAnnotationResponse

{}

Properties

None

mycujoo.annotations.v1beta1.DeleteAnnotationSetResponse

{}

Properties

None

mycujoo.annotations.v1beta1.DeleteAnnotationTypeResponse

{}

Properties

None

mycujoo.annotations.v1beta1.GetAnnotationResponse

{
  "annotation": {
    "action_call_ids": [
      "string"
    ],
    "create_time": "2019-08-24T14:15:22Z",
    "id": "string",
    "offset": "string",
    "timeline_id": "string",
    "type_id": "string"
  }
}

Properties

Name Type Required Restrictions Description
annotation mycujoo.annotations.v1beta1.Annotation false none none

mycujoo.annotations.v1beta1.GetAnnotationSetIamPolicyResponse

{
  "etag": "string",
  "policy": {
    "bindings": [
      {
        "account_ids": [
          "2GzbST9DaEPsNcDTaW30GWnfZyw",
          "2GzbTHf7FfMyGv2F71FWwGRzKWb"
        ],
        "role_id": "owner"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "projects.admin"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "accounts.admin"
      }
    ]
  },
  "resource_hierarchy": [
    {
      "id": "elevendata",
      "type": "project"
    }
  ],
  "resource_title": "string"
}

Properties

Name Type Required Restrictions Description
etag string(byte) false none none
policy mycujoo.auth.v1.Policy false none Authorization policy.
resource_hierarchy [mycujoo.auth.v1.Resource] false none [Resource object reference that is used to represent objects in the IAM system.]
resource_title string false none none

mycujoo.annotations.v1beta1.GetAnnotationSetResponse

{
  "set": {
    "id": "string",
    "title": "string"
  }
}

Properties

Name Type Required Restrictions Description
set mycujoo.annotations.v1beta1.AnnotationSet false none none

mycujoo.annotations.v1beta1.GetAnnotationTypeResponse

{
  "type": {
    "action_configuration_ids": [
      "string"
    ],
    "id": "string",
    "set_id": "string",
    "title": "string"
  }
}

Properties

Name Type Required Restrictions Description
type mycujoo.annotations.v1beta1.AnnotationType false none none

mycujoo.annotations.v1beta1.ListAnnotationSetsRequest.Include

"INCLUDE_UNSPECIFIED"

Properties

Name Type Required Restrictions Description
- INCLUDE_TOTAL_SIZE: When included, response will contain metadata about total number of available results irrespective of pagination string false none none

Enumerated Values

Property Value
- INCLUDE_TOTAL_SIZE: When included, response will contain metadata about total number of available results irrespective of pagination INCLUDE_UNSPECIFIED
- INCLUDE_TOTAL_SIZE: When included, response will contain metadata about total number of available results irrespective of pagination INCLUDE_TOTAL_SIZE

mycujoo.annotations.v1beta1.ListAnnotationSetsRequest.Order

"ORDER_TITLE_UNSPECIFIED"

Properties

Name Type Required Restrictions Description
- ORDER_TITLE_ASC: Results sorted by title ascending
- ORDER_TITLE_DESC: Results sorted by title descending string false none none

Enumerated Values

Property Value
- ORDER_TITLE_ASC: Results sorted by title ascending
- ORDER_TITLE_DESC: Results sorted by title descending ORDER_TITLE_UNSPECIFIED
- ORDER_TITLE_ASC: Results sorted by title ascending
- ORDER_TITLE_DESC: Results sorted by title descending ORDER_TITLE_ASC
- ORDER_TITLE_ASC: Results sorted by title ascending
- ORDER_TITLE_DESC: Results sorted by title descending ORDER_TITLE_DESC

mycujoo.annotations.v1beta1.ListAnnotationSetsResponse

{
  "next_page_token": "string",
  "sets": [
    {
      "id": "string",
      "title": "string"
    }
  ],
  "total_size": 0
}

Properties

Name Type Required Restrictions Description
next_page_token string false none none
sets [mycujoo.annotations.v1beta1.AnnotationSet] false none none
total_size integer(int32) false none The total count of items in the list irrespective of pagination. Will be present only when request 'include' field ask for it.

mycujoo.annotations.v1beta1.ListAnnotationTypesRequest.Include

"INCLUDE_UNSPECIFIED"

Properties

Name Type Required Restrictions Description
- INCLUDE_TOTAL_SIZE: When included, response will contain metadata about total number of available results irrespective of pagination string false none none

Enumerated Values

Property Value
- INCLUDE_TOTAL_SIZE: When included, response will contain metadata about total number of available results irrespective of pagination INCLUDE_UNSPECIFIED
- INCLUDE_TOTAL_SIZE: When included, response will contain metadata about total number of available results irrespective of pagination INCLUDE_TOTAL_SIZE

mycujoo.annotations.v1beta1.ListAnnotationTypesRequest.Order

"ORDER_TITLE_UNSPECIFIED"

Properties

Name Type Required Restrictions Description
- ORDER_TITLE_ASC: Results sorted by title ascending
- ORDER_TITLE_DESC: Results sorted by title descending string false none none

Enumerated Values

Property Value
- ORDER_TITLE_ASC: Results sorted by title ascending
- ORDER_TITLE_DESC: Results sorted by title descending ORDER_TITLE_UNSPECIFIED
- ORDER_TITLE_ASC: Results sorted by title ascending
- ORDER_TITLE_DESC: Results sorted by title descending ORDER_TITLE_ASC
- ORDER_TITLE_ASC: Results sorted by title ascending
- ORDER_TITLE_DESC: Results sorted by title descending ORDER_TITLE_DESC

mycujoo.annotations.v1beta1.ListAnnotationTypesResponse

{
  "next_page_token": "string",
  "total_size": 0,
  "types": [
    {
      "action_configuration_ids": [
        "string"
      ],
      "id": "string",
      "set_id": "string",
      "title": "string"
    }
  ]
}

Properties

Name Type Required Restrictions Description
next_page_token string false none none
total_size integer(int32) false none The total count of items in the list irrespective of pagination. Will be present only when request 'include' field ask for it.
types [mycujoo.annotations.v1beta1.AnnotationType] false none none

mycujoo.annotations.v1beta1.ListAnnotationsRequest.Include

"INCLUDE_UNSPECIFIED"

Properties

Name Type Required Restrictions Description
- INCLUDE_TOTAL_SIZE: When included, response will contain metadata about total number of available results irrespective of pagination string false none none

Enumerated Values

Property Value
- INCLUDE_TOTAL_SIZE: When included, response will contain metadata about total number of available results irrespective of pagination INCLUDE_UNSPECIFIED
- INCLUDE_TOTAL_SIZE: When included, response will contain metadata about total number of available results irrespective of pagination INCLUDE_TOTAL_SIZE

mycujoo.annotations.v1beta1.ListAnnotationsRequest.Order

"ORDER_UNSPECIFIED"

Properties

Name Type Required Restrictions Description
- ORDER_OFFSET_ASC: Results sorted by offset ascending
- ORDER_OFFSET_DESC: Results sorted by offset descending string false none none

Enumerated Values

Property Value
- ORDER_OFFSET_ASC: Results sorted by offset ascending
- ORDER_OFFSET_DESC: Results sorted by offset descending ORDER_UNSPECIFIED
- ORDER_OFFSET_ASC: Results sorted by offset ascending
- ORDER_OFFSET_DESC: Results sorted by offset descending ORDER_OFFSET_ASC
- ORDER_OFFSET_ASC: Results sorted by offset ascending
- ORDER_OFFSET_DESC: Results sorted by offset descending ORDER_OFFSET_DESC

mycujoo.annotations.v1beta1.ListAnnotationsResponse

{
  "annotations": [
    {
      "action_call_ids": [
        "string"
      ],
      "create_time": "2019-08-24T14:15:22Z",
      "id": "string",
      "offset": "string",
      "timeline_id": "string",
      "type_id": "string"
    }
  ],
  "next_page_token": "string",
  "total_size": 0
}

Properties

Name Type Required Restrictions Description
annotations [mycujoo.annotations.v1beta1.Annotation] false none none
next_page_token string false none none
total_size integer(int32) false none The total count of items in the list irrespective of pagination. Will be present only when request 'include' field ask for it.

mycujoo.annotations.v1beta1.SetAnnotationSetIamPolicyResponse

{}

When there is no error result is empty

Properties

None

mycujoo.annotations.v1beta1.TestIamPermissionsRequest

{
  "permissions": [
    "projects.create",
    "projects.update",
    "projects.delete"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
}

Properties

Name Type Required Restrictions Description
permissions [string] true none none
resource mycujoo.auth.v1.Resource true none Resource object reference that is used to represent objects in the IAM system.

mycujoo.annotations.v1beta1.TestIamPermissionsResponse

{
  "permissions": [
    "projects.create",
    "projects.update"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
}

Properties

Name Type Required Restrictions Description
permissions [string] false none none
resource mycujoo.auth.v1.Resource false none Resource object reference that is used to represent objects in the IAM system.

mycujoo.annotations.v1beta1.UpdateAnnotationRequestFields

{
  "offset": "string"
}

Properties

Name Type Required Restrictions Description
offset string(int64) false none none

mycujoo.annotations.v1beta1.UpdateAnnotationResponse

{
  "annotation": {
    "action_call_ids": [
      "string"
    ],
    "create_time": "2019-08-24T14:15:22Z",
    "id": "string",
    "offset": "string",
    "timeline_id": "string",
    "type_id": "string"
  }
}

Properties

Name Type Required Restrictions Description
annotation mycujoo.annotations.v1beta1.Annotation false none none

mycujoo.annotations.v1beta1.UpdateAnnotationSetRequestFields

{
  "title": "string"
}

Properties

Name Type Required Restrictions Description
title string false none none

mycujoo.annotations.v1beta1.UpdateAnnotationSetResponse

{
  "set": {
    "id": "string",
    "title": "string"
  }
}

Properties

Name Type Required Restrictions Description
set mycujoo.annotations.v1beta1.AnnotationSet false none none

mycujoo.annotations.v1beta1.UpdateAnnotationTypeRequestFields

{
  "title": "string"
}

Properties

Name Type Required Restrictions Description
title string false none none

mycujoo.annotations.v1beta1.UpdateAnnotationTypeResponse

{
  "type": {
    "action_configuration_ids": [
      "string"
    ],
    "id": "string",
    "set_id": "string",
    "title": "string"
  }
}

Properties

Name Type Required Restrictions Description
type mycujoo.annotations.v1beta1.AnnotationType false none none

mycujoo.assets.v1beta1.Asset

{
  "audio_metadata": {
    "audio_format": "string",
    "duration": "string"
  },
  "bucket_name": "string",
  "create_time": "2019-08-24T14:15:22Z",
  "extension": "string",
  "id": "string",
  "image_metadata": {
    "height": 0,
    "width": 0
  },
  "labels": {
    "property1": "string",
    "property2": "string"
  },
  "media_type": "string",
  "org_id": "string",
  "path": "string",
  "project_id": "string",
  "public_url": "string",
  "size_bytes": "string",
  "thumbnail": {
    "id": "string",
    "public_url": "string"
  },
  "title": "string",
  "update_time": "2019-08-24T14:15:22Z",
  "video_metadata": {
    "duration": "string",
    "height": 0,
    "video_format": "string",
    "width": 0
  }
}

Represents an uploaded asset

Properties

Name Type Required Restrictions Description
audio_metadata mycujoo.assets.v1beta1.AudioMetadata false none none
bucket_name string false none Bucket name of the stored object.
create_time string(date-time) false none none
extension string false none none
id string false none none
image_metadata mycujoo.assets.v1beta1.ImageMetadata false none none
labels object false none none
ยป additionalProperties string false none none
media_type string false none none
org_id string false none Organization ID of the asset.
path string false none Path to the stored object.
project_id string false none none
public_url string false none none
size_bytes string(int64) false none none
thumbnail mycujoo.assets.v1beta1.Thumbnail false none none
title string false none Human-friendly title of the asset.
update_time string(date-time) false none none
video_metadata mycujoo.assets.v1beta1.VideoMetadata false none none

mycujoo.assets.v1beta1.AudioMetadata

{
  "audio_format": "string",
  "duration": "string"
}

Properties

Name Type Required Restrictions Description
audio_format string false none none
duration string false none none

mycujoo.assets.v1beta1.CreateUploadRequest

{
  "content_length": "string",
  "labels": {
    "property1": "string",
    "property2": "string"
  },
  "media_type": "string",
  "project_id": "string",
  "title": "string"
}

Properties

Name Type Required Restrictions Description
content_length string(int64) false none none
labels object false none none
ยป additionalProperties string false none none
media_type string false none none
project_id string true none none
title string false none Human-friendly title of the asset.

mycujoo.assets.v1beta1.CreateUploadResponse

{
  "expiration_time": "2019-08-24T14:15:22Z",
  "upload_url": "string"
}

Properties

Name Type Required Restrictions Description
expiration_time string(date-time) false none none
upload_url string false none none

mycujoo.assets.v1beta1.GetIamPolicyResponse

{
  "etag": "string",
  "policy": {
    "bindings": [
      {
        "account_ids": [
          "2GzbST9DaEPsNcDTaW30GWnfZyw",
          "2GzbTHf7FfMyGv2F71FWwGRzKWb"
        ],
        "role_id": "owner"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "projects.admin"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "accounts.admin"
      }
    ]
  },
  "resource_hierarchy": [
    {
      "id": "elevendata",
      "type": "project"
    }
  ],
  "resource_title": "string"
}

Properties

Name Type Required Restrictions Description
etag string(byte) false none none
policy mycujoo.auth.v1.Policy false none Authorization policy.
resource_hierarchy [mycujoo.auth.v1.Resource] false none [Resource object reference that is used to represent objects in the IAM system.]
resource_title string false none none

mycujoo.assets.v1beta1.ImageMetadata

{
  "height": 0,
  "width": 0
}

Metadata for assets of type image

Properties

Name Type Required Restrictions Description
height integer(int32) false none none
width integer(int32) false none none

mycujoo.assets.v1beta1.ImportAsset

{
  "audio_metadata": {
    "audio_format": "string",
    "duration": "string"
  },
  "extension": "string",
  "image_metadata": {
    "height": 0,
    "width": 0
  },
  "labels[string]": {
    "property1": "string",
    "property2": "string"
  },
  "media_type": "string",
  "org_id": "string",
  "project_id": "string",
  "size_bytes": "string",
  "source_url": "string",
  "title": "string",
  "video_metadata": {
    "duration": "string",
    "height": 0,
    "video_format": "string",
    "width": 0
  }
}

Properties

Name Type Required Restrictions Description
audio_metadata mycujoo.assets.v1beta1.AudioMetadata false none none
extension string false none none
image_metadata mycujoo.assets.v1beta1.ImageMetadata false none none
labels[string] object false none none
ยป additionalProperties string false none none
media_type string false none none
org_id string false none Organization ID of the asset.
project_id string false none none
size_bytes string(int64) false none none
source_url string false none none
title string false none Human-friendly name of the asset.
video_metadata mycujoo.assets.v1beta1.VideoMetadata false none none

mycujoo.assets.v1beta1.ImportAssetResponse

{
  "asset": {
    "audio_metadata": {
      "audio_format": "string",
      "duration": "string"
    },
    "bucket_name": "string",
    "create_time": "2019-08-24T14:15:22Z",
    "extension": "string",
    "id": "string",
    "image_metadata": {
      "height": 0,
      "width": 0
    },
    "labels": {
      "property1": "string",
      "property2": "string"
    },
    "media_type": "string",
    "org_id": "string",
    "path": "string",
    "project_id": "string",
    "public_url": "string",
    "size_bytes": "string",
    "thumbnail": {
      "id": "string",
      "public_url": "string"
    },
    "title": "string",
    "update_time": "2019-08-24T14:15:22Z",
    "video_metadata": {
      "duration": "string",
      "height": 0,
      "video_format": "string",
      "width": 0
    }
  }
}

Properties

Name Type Required Restrictions Description
asset mycujoo.assets.v1beta1.Asset false none none

mycujoo.assets.v1beta1.LabelKey

{
  "create_time": "2019-08-24T14:15:22Z",
  "id": "string",
  "key": "string"
}

Properties

Name Type Required Restrictions Description
create_time string(date-time) false none none
id string false none none
key string false none none

mycujoo.assets.v1beta1.LabelValue

{
  "create_time": "2019-08-24T14:15:22Z",
  "id": "string",
  "value": "string"
}

Properties

Name Type Required Restrictions Description
create_time string(date-time) false none none
id string false none none
value string false none none

mycujoo.assets.v1beta1.ListAssetsResponse

{
  "assets": [
    {
      "audio_metadata": {
        "audio_format": "string",
        "duration": "string"
      },
      "bucket_name": "string",
      "create_time": "2019-08-24T14:15:22Z",
      "extension": "string",
      "id": "string",
      "image_metadata": {
        "height": 0,
        "width": 0
      },
      "labels": {
        "property1": "string",
        "property2": "string"
      },
      "media_type": "string",
      "org_id": "string",
      "path": "string",
      "project_id": "string",
      "public_url": "string",
      "size_bytes": "string",
      "thumbnail": {
        "id": "string",
        "public_url": "string"
      },
      "title": "string",
      "update_time": "2019-08-24T14:15:22Z",
      "video_metadata": {
        "duration": "string",
        "height": 0,
        "video_format": "string",
        "width": 0
      }
    }
  ],
  "next_page_token": "string"
}

Properties

Name Type Required Restrictions Description
assets [mycujoo.assets.v1beta1.Asset] false none none
next_page_token string false none The pagination token that should be used to get next page results.
An empty value means no more results.

mycujoo.assets.v1beta1.ListLabelKeysResponse

{
  "keys": [
    {
      "create_time": "2019-08-24T14:15:22Z",
      "id": "string",
      "key": "string"
    }
  ],
  "next_page_token": "string"
}

Properties

Name Type Required Restrictions Description
keys [mycujoo.assets.v1beta1.LabelKey] false none none
next_page_token string false none The pagination token that should be used to get next page results.
An empty value means no more results.

mycujoo.assets.v1beta1.ListLabelValuesResponse

{
  "next_page_token": "string",
  "values": [
    {
      "create_time": "2019-08-24T14:15:22Z",
      "id": "string",
      "value": "string"
    }
  ]
}

Properties

Name Type Required Restrictions Description
next_page_token string false none The pagination token that should be used to get next page results.
An empty value means no more results.
values [mycujoo.assets.v1beta1.LabelValue] false none none

mycujoo.assets.v1beta1.SetIamPolicyResponse

{}

Properties

None

mycujoo.assets.v1beta1.TestIamPermissionsRequest

{
  "permissions": [
    "projects.create",
    "projects.update",
    "projects.delete"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
}

Properties

Name Type Required Restrictions Description
permissions [string] true none none
resource mycujoo.auth.v1.Resource true none Resource object reference that is used to represent objects in the IAM system.

mycujoo.assets.v1beta1.TestIamPermissionsResponse

{
  "permissions": [
    "projects.create",
    "projects.update"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
}

Properties

Name Type Required Restrictions Description
permissions [string] false none none
resource mycujoo.auth.v1.Resource false none Resource object reference that is used to represent objects in the IAM system.

mycujoo.assets.v1beta1.Thumbnail

{
  "id": "string",
  "public_url": "string"
}

Properties

Name Type Required Restrictions Description
id string false none none
public_url string false none none

mycujoo.assets.v1beta1.UpdateAssetLabelsResponse

{}

Properties

None

mycujoo.assets.v1beta1.UpdateAssetTitleResponse

{}

Properties

None

mycujoo.assets.v1beta1.VideoMetadata

{
  "duration": "string",
  "height": 0,
  "video_format": "string",
  "width": 0
}

Metadata for assets of type video

Properties

Name Type Required Restrictions Description
duration string false none none
height integer(int32) false none none
video_format string false none none
width integer(int32) false none none

mycujoo.auth.v1.Binding

{
  "account_ids": [
    "string"
  ],
  "include_all_organization_accounts": true,
  "role_id": "string"
}

Associates account_ids with a role.

Properties

Name Type Required Restrictions Description
account_ids [string] false none List of account identifiers (referencing mycujoo.accounts.v1.Account) that have the role.
include_all_organization_accounts boolean false none If this is set to true then the role is granted to all accounts in the organization. It overrides the account_ids field.
role_id string false none none

mycujoo.auth.v1.GetResourceIamPolicyResponse

{
  "etag": "string",
  "policy": {
    "bindings": [
      {
        "account_ids": [
          "2GzbST9DaEPsNcDTaW30GWnfZyw",
          "2GzbTHf7FfMyGv2F71FWwGRzKWb"
        ],
        "role_id": "owner"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "projects.admin"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "accounts.admin"
      }
    ]
  }
}

Properties

Name Type Required Restrictions Description
etag string(byte) false none none
policy mycujoo.auth.v1.Policy false none Authorization policy.

mycujoo.auth.v1.GetRoleResponse

{
  "role": {
    "display_name": "Owner",
    "id": "owner",
    "permissions": [
      "projects.get",
      "events.get"
    ]
  }
}

Properties

Name Type Required Restrictions Description
role mycujoo.auth.v1.Role false none none

mycujoo.auth.v1.ListAccountResourceBindingsResponse

{
  "resource_bindings": [
    {
      "resource": {
        "id": "project-1",
        "type": "project"
      },
      "role_id": "owner"
    },
    {
      "resource": {
        "id": "yyy",
        "type": "event_type"
      },
      "role_id": "event_types.editor"
    }
  ]
}

Properties

Name Type Required Restrictions Description
next_page_token string false none If there are more results than have been returned, then this field is set
to a non-empty value. To see the additional results,
use that value as page_token in the next call to this method.
resource_bindings [mycujoo.auth.v1.ResourceBinding] false none none

mycujoo.auth.v1.ListRoleGroupsResponse

{
  "next_page_token": "string",
  "role_groups": [
    {
      "display_name": "string",
      "id": "string",
      "roles": [
        {
          "display_name": "Owner",
          "id": "owner",
          "permissions": [
            "projects.get",
            "events.get"
          ]
        }
      ]
    }
  ]
}

Properties

Name Type Required Restrictions Description
next_page_token string false none If there are more results than have been returned, then this field is set
to a non-empty value. To see the additional results,
use that value as page_token in the next call to this method.
role_groups [mycujoo.auth.v1.RoleGroup] false none none

mycujoo.auth.v1.LoginRequest

{
  "email": "string",
  "org_id": "string",
  "password": "string"
}

Properties

Name Type Required Restrictions Description
email string true none none
org_id string true none none
password string true none none

mycujoo.auth.v1.LoginResponse

{
  "token": "string"
}

Properties

Name Type Required Restrictions Description
token string false none none

mycujoo.auth.v1.Policy

{
  "bindings": [
    {
      "account_ids": [
        "2GzbST9DaEPsNcDTaW30GWnfZyw",
        "2GzbTHf7FfMyGv2F71FWwGRzKWb"
      ],
      "role_id": "owner"
    },
    {
      "account_ids": [
        "2GzbXfLtstLUn0d9HoaQTvSfSkf"
      ],
      "role_id": "projects.admin"
    },
    {
      "account_ids": [
        "2GzbXfLtstLUn0d9HoaQTvSfSkf"
      ],
      "role_id": "accounts.admin"
    }
  ]
}

Authorization policy.

Properties

Name Type Required Restrictions Description
bindings [mycujoo.auth.v1.Binding] false none List of bindings to the policy. If empty, the policy will not have any effect.
Total number of accounts referenced in the bindings should be up to 1500.
If same account has multiple roles - it is counted multiple times.

mycujoo.auth.v1.Resource

{
  "id": "elevendata",
  "type": "project"
}

Resource object reference that is used to represent objects in the IAM system.

Properties

Name Type Required Restrictions Description
id string false none none
type string false none none

mycujoo.auth.v1.ResourceBinding

{
  "resource": {
    "id": "elevendata",
    "type": "project"
  },
  "role_ids": [
    "owner"
  ],
  "role_ids_via_org_bindings": [
    "viewer"
  ]
}

Link between resource and roles this is a virtual resource, meaning it's derived from the existing policies on a fly, not created as such

Properties

Name Type Required Restrictions Description
resource mycujoo.auth.v1.Resource false none Resource object reference that is used to represent objects in the IAM system.
role_ids [string] false none List of role IDs that account has on the resource.
role_ids_via_org_bindings [string] false none List of role IDs that account has on the resource, granted via an organization-wide binding.

mycujoo.auth.v1.Role

{
  "display_name": "Owner",
  "id": "owner",
  "permissions": [
    "projects.get",
    "events.get"
  ]
}

Properties

Name Type Required Restrictions Description
description string false none A human friendly description of the role.
display_name string false none none
id string false read-only The unique identifier of the role.
Can be either system role like owner or custom role ID like org:ORG_ID:role:ROLE_ID.
permissions [string] false none The permissions that are granted to the role.

mycujoo.auth.v1.RoleGroup

{
  "display_name": "string",
  "id": "string",
  "roles": [
    {
      "display_name": "Owner",
      "id": "owner",
      "permissions": [
        "projects.get",
        "events.get"
      ]
    }
  ]
}

Properties

Name Type Required Restrictions Description
display_name string false none A human friendly name of the group.
id string false none none
roles [mycujoo.auth.v1.Role] false none none

mycujoo.auth.v1.SetResourceIamPolicyResponse

{}

When there is no error result is empty

Properties

None

mycujoo.auth.v1.TestIamPermissionsRequest

{
  "permissions": [
    "projects.create",
    "projects.update",
    "projects.delete"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
}

Properties

Name Type Required Restrictions Description
permissions [string] true none none
resource mycujoo.auth.v1.Resource true none Resource object reference that is used to represent objects in the IAM system.

mycujoo.auth.v1.TestIamPermissionsResponse

{
  "permissions": [
    "projects.create",
    "projects.update"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
}

Properties

Name Type Required Restrictions Description
permissions [string] false none none
resource mycujoo.auth.v1.Resource false none Resource object reference that is used to represent objects in the IAM system.

mycujoo.banners.v1beta1.AddBannerToSetResponse

{}

Properties

None

mycujoo.banners.v1beta1.Banner

{
  "assets": {
    "desktop_asset_id": "string",
    "mobile_asset_id": "string"
  },
  "content": {
    "button_text": "string",
    "primary": "string",
    "secondary": "string"
  },
  "id": "string",
  "last_update_time": "2019-08-24T14:15:22Z",
  "open_in_new_window": true,
  "state": "STATE_UNSPECIFIED",
  "target_url": "string",
  "title": "string"
}

Properties

Name Type Required Restrictions Description
assets mycujoo.banners.v1beta1.BannerAssets false none none
content mycujoo.banners.v1beta1.BannerContent false none none
id string false read-only none
last_update_time string(date-time) false none none
open_in_new_window boolean false none none
state mycujoo.banners.v1beta1.Banner.State false none none
target_url string false none none
title string false none none

mycujoo.banners.v1beta1.Banner.State

"STATE_UNSPECIFIED"

Properties

Name Type Required Restrictions Description
- STATE_PUBLISHED: default when a new banner is created string false none none

Enumerated Values

Property Value
- STATE_PUBLISHED: default when a new banner is created STATE_UNSPECIFIED
- STATE_PUBLISHED: default when a new banner is created STATE_PUBLISHED
- STATE_PUBLISHED: default when a new banner is created STATE_HIDDEN

mycujoo.banners.v1beta1.BannerAssets

{
  "desktop_asset_id": "string",
  "mobile_asset_id": "string"
}

Properties

Name Type Required Restrictions Description
desktop_asset_id string false none none
mobile_asset_id string false none none

mycujoo.banners.v1beta1.BannerContent

{
  "button_text": "string",
  "primary": "string",
  "secondary": "string"
}

Properties

Name Type Required Restrictions Description
button_text string false none none
primary string false none none
secondary string false none none

mycujoo.banners.v1beta1.BannerSet

{
  "banners_count": 0,
  "id": "string",
  "last_update_time": "2019-08-24T14:15:22Z",
  "title": "string"
}

Properties

Name Type Required Restrictions Description
banners_count integer(int32) false read-only none
id string true none none
last_update_time string(date-time) false none none
title string false none none

mycujoo.banners.v1beta1.CreateBannerResponse

{
  "banner": {
    "assets": {
      "desktop_asset_id": "string",
      "mobile_asset_id": "string"
    },
    "content": {
      "button_text": "string",
      "primary": "string",
      "secondary": "string"
    },
    "id": "string",
    "last_update_time": "2019-08-24T14:15:22Z",
    "open_in_new_window": true,
    "state": "STATE_UNSPECIFIED",
    "target_url": "string",
    "title": "string"
  }
}

Properties

Name Type Required Restrictions Description
banner mycujoo.banners.v1beta1.Banner false none none

mycujoo.banners.v1beta1.CreateBannerSetResponse

{
  "banner_set": {
    "banners_count": 0,
    "id": "string",
    "last_update_time": "2019-08-24T14:15:22Z",
    "title": "string"
  }
}

Properties

Name Type Required Restrictions Description
banner_set mycujoo.banners.v1beta1.BannerSet false none none

mycujoo.banners.v1beta1.DeleteBannerResponse

{}

Properties

None

mycujoo.banners.v1beta1.DeleteBannerSetResponse

{}

Properties

None

mycujoo.banners.v1beta1.GetBannerResponse

{
  "banner": {
    "assets": {
      "desktop_asset_id": "string",
      "mobile_asset_id": "string"
    },
    "content": {
      "button_text": "string",
      "primary": "string",
      "secondary": "string"
    },
    "id": "string",
    "last_update_time": "2019-08-24T14:15:22Z",
    "open_in_new_window": true,
    "state": "STATE_UNSPECIFIED",
    "target_url": "string",
    "title": "string"
  }
}

Properties

Name Type Required Restrictions Description
banner mycujoo.banners.v1beta1.Banner false none none

mycujoo.banners.v1beta1.GetBannerSetResponse

{
  "banner_set": {
    "banners_count": 0,
    "id": "string",
    "last_update_time": "2019-08-24T14:15:22Z",
    "title": "string"
  }
}

Properties

Name Type Required Restrictions Description
banner_set mycujoo.banners.v1beta1.BannerSet false none none

mycujoo.banners.v1beta1.ListAllBannersBySetIDResponse

{
  "banners": [
    {
      "assets": {
        "desktop_asset_id": "string",
        "mobile_asset_id": "string"
      },
      "content": {
        "button_text": "string",
        "primary": "string",
        "secondary": "string"
      },
      "id": "string",
      "last_update_time": "2019-08-24T14:15:22Z",
      "open_in_new_window": true,
      "state": "STATE_UNSPECIFIED",
      "target_url": "string",
      "title": "string"
    }
  ]
}

Properties

Name Type Required Restrictions Description
banners [mycujoo.banners.v1beta1.Banner] false none none

mycujoo.banners.v1beta1.ListAllSetsByBannerIDResponse

{
  "banner_sets": [
    {
      "banners_count": 0,
      "id": "string",
      "last_update_time": "2019-08-24T14:15:22Z",
      "title": "string"
    }
  ]
}

Properties

Name Type Required Restrictions Description
banner_sets [mycujoo.banners.v1beta1.BannerSet] false none none

mycujoo.banners.v1beta1.ListBannerSetsRequest.Order

"ORDER_UNSPECIFIED"

Properties

Name Type Required Restrictions Description
anonymous string false none none

Enumerated Values

Property Value
anonymous ORDER_UNSPECIFIED
anonymous ORDER_CREATE_TIME_DESC
anonymous ORDER_CREATE_TIME_ASC

mycujoo.banners.v1beta1.ListBannerSetsResponse

{
  "banner_sets": [
    {
      "banners_count": 0,
      "id": "string",
      "last_update_time": "2019-08-24T14:15:22Z",
      "title": "string"
    }
  ],
  "next_page_token": "string"
}

Properties

Name Type Required Restrictions Description
banner_sets [mycujoo.banners.v1beta1.BannerSet] false none none
next_page_token string false none none

mycujoo.banners.v1beta1.ListBannersRequest.Order

"ORDER_UNSPECIFIED"

Properties

Name Type Required Restrictions Description
anonymous string false none none

Enumerated Values

Property Value
anonymous ORDER_UNSPECIFIED
anonymous ORDER_CREATE_TIME_DESC
anonymous ORDER_CREATE_TIME_ASC

mycujoo.banners.v1beta1.ListBannersResponse

{
  "banners": [
    {
      "assets": {
        "desktop_asset_id": "string",
        "mobile_asset_id": "string"
      },
      "content": {
        "button_text": "string",
        "primary": "string",
        "secondary": "string"
      },
      "id": "string",
      "last_update_time": "2019-08-24T14:15:22Z",
      "open_in_new_window": true,
      "state": "STATE_UNSPECIFIED",
      "target_url": "string",
      "title": "string"
    }
  ],
  "next_page_token": "string"
}

Properties

Name Type Required Restrictions Description
banners [mycujoo.banners.v1beta1.Banner] false none none
next_page_token string false none none

mycujoo.banners.v1beta1.RemoveBannerFromSetResponse

{}

Properties

None

mycujoo.banners.v1beta1.UpdateBannerResponse

{
  "banner": {
    "assets": {
      "desktop_asset_id": "string",
      "mobile_asset_id": "string"
    },
    "content": {
      "button_text": "string",
      "primary": "string",
      "secondary": "string"
    },
    "id": "string",
    "last_update_time": "2019-08-24T14:15:22Z",
    "open_in_new_window": true,
    "state": "STATE_UNSPECIFIED",
    "target_url": "string",
    "title": "string"
  }
}

Properties

Name Type Required Restrictions Description
banner mycujoo.banners.v1beta1.Banner false none none

mycujoo.banners.v1beta1.UpdateBannerSetBannersResponse

{}

Properties

None

mycujoo.banners.v1beta1.UpdateBannerSetResponse

{
  "banner_set": {
    "banners_count": 0,
    "id": "string",
    "last_update_time": "2019-08-24T14:15:22Z",
    "title": "string"
  }
}

Properties

Name Type Required Restrictions Description
banner_set mycujoo.banners.v1beta1.BannerSet false none none

mycujoo.drmauth.v1beta1.ContentKey

{
  "iv": "string",
  "key": "string",
  "key_id": "string",
  "pssh": "string"
}

Properties

Name Type Required Restrictions Description
iv string false none none
key string false none none
key_id string false none none
pssh string false none none

mycujoo.drmauth.v1beta1.EncryptionSystem

"ENCRYPTION_SYSTEM_UNSPECIFIED"

Properties

Name Type Required Restrictions Description
anonymous string false none none

Enumerated Values

Property Value
anonymous ENCRYPTION_SYSTEM_UNSPECIFIED
anonymous ENCRYPTION_SYSTEM_WIDEVINE
anonymous ENCRYPTION_SYSTEM_PLAYREADY
anonymous ENCRYPTION_SYSTEM_FAIRPLAY

mycujoo.drmauth.v1beta1.GetContentKeyResponse

{
  "content_key": {
    "iv": "string",
    "key": "string",
    "key_id": "string",
    "pssh": "string"
  }
}

Properties

Name Type Required Restrictions Description
content_key mycujoo.drmauth.v1beta1.ContentKey false none none

mycujoo.drmauth.v1beta1.GetCredentialResponse

{
  "org_credential": {
    "property1": "string",
    "property2": "string"
  },
  "provider": "PROVIDER_UNSPECIFIED"
}

Properties

Name Type Required Restrictions Description
org_credential object false none none
ยป additionalProperties string false none none
provider mycujoo.drmauth.v1beta1.Provider false none none

mycujoo.drmauth.v1beta1.GetLicenseResponse

{
  "license": {
    "headers": {
      "property1": "string",
      "property2": "string"
    },
    "provider": "PROVIDER_UNSPECIFIED",
    "url": "string"
  }
}

Properties

Name Type Required Restrictions Description
license mycujoo.drmauth.v1beta1.License false none none

mycujoo.drmauth.v1beta1.License

{
  "headers": {
    "property1": "string",
    "property2": "string"
  },
  "provider": "PROVIDER_UNSPECIFIED",
  "url": "string"
}

Properties

Name Type Required Restrictions Description
headers object false none Authorization type
Some DRM providers need their own HTTP headers fields
e.g Authorization, Content-Type or etc.
ยป additionalProperties string false none none
provider mycujoo.drmauth.v1beta1.Provider false none none
url string false none The license check URL
e.g https://wv.service.expressplay.com/hms/wv/rights/?ExpressPlayToken=...

mycujoo.drmauth.v1beta1.Provider

"PROVIDER_UNSPECIFIED"

Properties

Name Type Required Restrictions Description
anonymous string false none none

Enumerated Values

Property Value
anonymous PROVIDER_UNSPECIFIED
anonymous PROVIDER_INTERTRUST
anonymous PROVIDER_VERIMATRIX
anonymous PROVIDER_EZDRM

mycujoo.email.v1beta1.Attachment

{
  "bytes": "string",
  "content_type": "string",
  "file_name": "string",
  "url": "string"
}

Properties

Name Type Required Restrictions Description
bytes string(byte) false none none
content_type string false none none
file_name string false none none
url string false none Contains the url where the attachment can be found
The host address couldn't be an IP address.

mycujoo.email.v1beta1.CreateTemplateResponse

{}

Properties

None

mycujoo.email.v1beta1.DeleteTemplateResponse

{}

Properties

None

mycujoo.email.v1beta1.GetTemplateResponse

{
  "template": {
    "description": "string",
    "name": "string",
    "template": "string"
  }
}

Properties

Name Type Required Restrictions Description
template mycujoo.email.v1beta1.Template false none none

mycujoo.email.v1beta1.OrganizationRecipient

{
  "org_id": "string",
  "types": [
    "TYPE_UNSPECIFIED"
  ]
}

Properties

Name Type Required Restrictions Description
org_id string false none none
types [mycujoo.email.v1beta1.OrganizationRecipient.Type] false none none

mycujoo.email.v1beta1.OrganizationRecipient.Type

"TYPE_UNSPECIFIED"

Properties

Name Type Required Restrictions Description
anonymous string false none none

Enumerated Values

Property Value
anonymous TYPE_UNSPECIFIED
anonymous TYPE_OWNER

mycujoo.email.v1beta1.Recipient

{
  "email": "string",
  "organization_recipient": {
    "org_id": "string",
    "types": [
      "TYPE_UNSPECIFIED"
    ]
  },
  "user_id": "string",
  "variables": {}
}

Properties

Name Type Required Restrictions Description
email string false none none
organization_recipient mycujoo.email.v1beta1.OrganizationRecipient false none none
user_id string false none none
variables object false none none

mycujoo.email.v1beta1.SendEmailResponse

{
  "message_id": "string"
}

Properties

Name Type Required Restrictions Description
message_id string false none none

mycujoo.email.v1beta1.Template

{
  "description": "string",
  "name": "string",
  "template": "string"
}

Properties

Name Type Required Restrictions Description
description string false none none
name string false none none
template string false none none

mycujoo.entitlements.v1.CheckEntitlementResponse

{
  "is_entitled": true
}

Properties

Name Type Required Restrictions Description
is_entitled boolean false none none

mycujoo.entitlements.v1.ContentReference

{
  "id": "string",
  "type": "string"
}

ContentReference references some content.

Properties

Name Type Required Restrictions Description
id string true none none
type string true none none

mycujoo.entitlements.v1.DeleteEntitlementResponse

{}

Properties

None

mycujoo.entitlements.v1.Entitlement

{
  "concurrency_limit": "string",
  "content_reference": {
    "id": "string",
    "type": "string"
  },
  "expiration_time": "2019-08-24T14:15:22Z",
  "identity_id": "string",
  "origin": {
    "id": "string",
    "type": "string"
  }
}

Entitlement is a pair of identity and content reference that is used for access management

Properties

Name Type Required Restrictions Description
concurrency_limit string(int64) false none Concurrency limit for the entitlement. 0 means no limit.
It is defined at the entitlement level, not at the content level because there could be
multiple entitlements for the same content with different limits.
If limit is reached - oldest playback session will be closed.
content_reference mycujoo.entitlements.v1.ContentReference false none ContentReference references some content.
expiration_time string(date-time) false none Time when entitlement expires and identity lose access to the content. 0 means never expires.
identity_id string false none none
origin mycujoo.entitlements.v1.Origin false none Preceding event that is the reason for the content to be entitled (for instance, payment).

mycujoo.entitlements.v1.ListEntitlementsResponse

{
  "entitlements": [
    {
      "concurrency_limit": "string",
      "content_reference": {
        "id": "string",
        "type": "string"
      },
      "expiration_time": "2019-08-24T14:15:22Z",
      "identity_id": "string",
      "origin": {
        "id": "string",
        "type": "string"
      }
    }
  ],
  "next_page_token": "string"
}

Properties

Name Type Required Restrictions Description
entitlements [mycujoo.entitlements.v1.Entitlement] false none none
next_page_token string false none none

mycujoo.entitlements.v1.Origin

{
  "id": "string",
  "type": "string"
}

Preceding event that is the reason for the content to be entitled (for instance, payment).

Properties

Name Type Required Restrictions Description
id string true none ID of the event that is the reason for the entitlement.
type string true none Origin type (i.e. 'payment').

mycujoo.entitlements.v1.UpdateContentProtectionResponse

{}

Properties

None

mycujoo.entitlements.v1.UpsertEntitlementResponse

{}

Properties

None

mycujoo.events.v1.AddStreamResponse

{
  "event_id": "string",
  "stream_id": "string"
}

Properties

Name Type Required Restrictions Description
event_id string false none none
stream_id string false none none

mycujoo.events.v1.AddTimelineResponse

{
  "event_id": "string",
  "timeline_id": "string"
}

Properties

Name Type Required Restrictions Description
event_id string false none none
timeline_id string false none none

mycujoo.events.v1.ContentVisibility

"CONTENT_VISIBILITY_UNSPECIFIED"

Properties

Name Type Required Restrictions Description
anonymous string false none - CONTENT_VISIBILITY_UNSPECIFIED: When event visibility is not specified
- CONTENT_VISIBILITY_PUBLISHED: It's when event is visible on list and accessible using url.
- CONTENT_VISIBILITY_UNLISTED: It's when event is accessible just using url it will not be shown on lists.
- CONTENT_VISIBILITY_HIDDEN: It's when event is completely hidden and is not accessible by url and will not be shown on the lists.

Enumerated Values

Property Value
anonymous CONTENT_VISIBILITY_UNSPECIFIED
anonymous CONTENT_VISIBILITY_PUBLISHED
anonymous CONTENT_VISIBILITY_UNLISTED
anonymous CONTENT_VISIBILITY_HIDDEN

mycujoo.events.v1.CreateRequest

{
  "content_visibility": "CONTENT_VISIBILITY_UNSPECIFIED",
  "description": "string",
  "is_test": true,
  "labels": {
    "property1": "string",
    "property2": "string"
  },
  "location": {
    "online": "string",
    "physical": {
      "city": "Amsterdam",
      "continent_code": "EU",
      "country_code": "NL",
      "venue": "Johan Cruijff ArenA"
    }
  },
  "metadata": {
    "data": {},
    "schema_id": "string"
  },
  "organiser": "string",
  "poster_asset_id": "string",
  "poster_url": "string",
  "project_id": "string",
  "start_time": "2019-08-24T14:15:22Z",
  "thumbnail_asset_id": "string",
  "thumbnail_url": "string",
  "timezone": "string",
  "title": "string"
}

Properties

Name Type Required Restrictions Description
content_visibility mycujoo.events.v1.ContentVisibility false none - CONTENT_VISIBILITY_UNSPECIFIED: When event visibility is not specified
- CONTENT_VISIBILITY_PUBLISHED: It's when event is visible on list and accessible using url.
- CONTENT_VISIBILITY_UNLISTED: It's when event is accessible just using url it will not be shown on lists.
- CONTENT_VISIBILITY_HIDDEN: It's when event is completely hidden and is not accessible by url and will not be shown on the lists.
description string false none none
is_test boolean false none none
labels object false none User defined labels for the event.
Deprecated: Use metadata with indexed fields instead.
ยป additionalProperties string false none none
location mycujoo.events.v1.Location true none This could either be a physical location (eg. Amsterdam Arena Blvd) or a
URL. When location type is set to online, the sent string will be
validated as URL (https://www.amsterdamarena.com/).
metadata mycujoo.events.v1.EventMetadata false none none
organiser string false none none
poster_asset_id string false none none
poster_url string false none none
project_id string false none none
start_time string(date-time) true none none
thumbnail_asset_id string false none none
thumbnail_url string false none none
timezone string true none none
title string true none none

mycujoo.events.v1.CreateResponse

{
  "event": {
    "id": "ck9poahb1000601laar5w4dfd",
    "title": "2020 MyCujoo Champions League Final"
  }
}

Properties

Name Type Required Restrictions Description
event mycujoo.events.v1.Event false none none

mycujoo.events.v1.DeleteResponse

{
  "id": "string"
}

Properties

Name Type Required Restrictions Description
id string false none none

mycujoo.events.v1.Event

{
  "id": "ck9poahb1000601laar5w4dfd",
  "title": "2020 MyCujoo Champions League Final"
}

MyCujoo Event

Properties

Name Type Required Restrictions Description
content_visibility mycujoo.events.v1.ContentVisibility false none - CONTENT_VISIBILITY_UNSPECIFIED: When event visibility is not specified
- CONTENT_VISIBILITY_PUBLISHED: It's when event is visible on list and accessible using url.
- CONTENT_VISIBILITY_UNLISTED: It's when event is accessible just using url it will not be shown on lists.
- CONTENT_VISIBILITY_HIDDEN: It's when event is completely hidden and is not accessible by url and will not be shown on the lists.
create_time string(date-time) false none none
description string false none none
id string false none none
is_test boolean false none none
labels object false none User defined labels for the event.
Deprecated: Use metadata with indexed fields instead.
ยป additionalProperties string false none none
location mycujoo.events.v1.Location false none This could either be a physical location (eg. Amsterdam Arena Blvd) or a
URL. When location type is set to online, the sent string will be
validated as URL (https://www.amsterdamarena.com/).
metadata mycujoo.events.v1.EventMetadata false none none
organiser string false none none
poster_asset_id string false none none
poster_url string false none none
project_id string false none none
start_time string(date-time) false none none
status mycujoo.events.v1.EventStatus false none - EVENT_STATUS_UNSPECIFIED: The default value for event status. In real world it will always be
specified.
- EVENT_STATUS_SCHEDULED: Initial status for created event.
It's when event will happend in the future and the date is known.
- EVENT_STATUS_RESCHEDULED: When the event was rescheduled and the future date is known.
- EVENT_STATUS_CANCELLED: When the event is cancelled and is not going to happen.
- EVENT_STATUS_POSTPONED: When the event is rescheduled but the future date is not known yet.
- EVENT_STATUS_DELAYED: When the event is still going to happen around defined start date but is
delayed by some amount of time.
- EVENT_STATUS_STARTED: When the event has started and is live.
- EVENT_STATUS_PAUSED: When the event has paused.
- EVENT_STATUS_SUSPENDED: When the event is suspended and it's not yet known if it's going to happen
in the future.
- EVENT_STATUS_FINISHED: When the event has finished and is no longer live.
stream_ids [string] false none none
thumbnail_asset_id string false none none
thumbnail_url string false none none
timeline_ids [string] false none none
timezone string false none none
title string false none none

mycujoo.events.v1.EventMetadata

{
  "data": {},
  "schema_id": "string"
}

Properties

Name Type Required Restrictions Description
data object false none none
schema_id string false none none

mycujoo.events.v1.EventStatus

"EVENT_STATUS_UNSPECIFIED"

Properties

Name Type Required Restrictions Description
anonymous string false none - EVENT_STATUS_UNSPECIFIED: The default value for event status. In real world it will always be
specified.
- EVENT_STATUS_SCHEDULED: Initial status for created event.
It's when event will happend in the future and the date is known.
- EVENT_STATUS_RESCHEDULED: When the event was rescheduled and the future date is known.
- EVENT_STATUS_CANCELLED: When the event is cancelled and is not going to happen.
- EVENT_STATUS_POSTPONED: When the event is rescheduled but the future date is not known yet.
- EVENT_STATUS_DELAYED: When the event is still going to happen around defined start date but is
delayed by some amount of time.
- EVENT_STATUS_STARTED: When the event has started and is live.
- EVENT_STATUS_PAUSED: When the event has paused.
- EVENT_STATUS_SUSPENDED: When the event is suspended and it's not yet known if it's going to happen
in the future.
- EVENT_STATUS_FINISHED: When the event has finished and is no longer live.

Enumerated Values

Property Value
anonymous EVENT_STATUS_UNSPECIFIED
anonymous EVENT_STATUS_SCHEDULED
anonymous EVENT_STATUS_RESCHEDULED
anonymous EVENT_STATUS_CANCELLED
anonymous EVENT_STATUS_POSTPONED
anonymous EVENT_STATUS_DELAYED
anonymous EVENT_STATUS_STARTED
anonymous EVENT_STATUS_PAUSED
anonymous EVENT_STATUS_SUSPENDED
anonymous EVENT_STATUS_FINISHED

mycujoo.events.v1.GetIamPolicyResponse

{
  "etag": "string",
  "policy": {
    "bindings": [
      {
        "account_ids": [
          "2GzbST9DaEPsNcDTaW30GWnfZyw",
          "2GzbTHf7FfMyGv2F71FWwGRzKWb"
        ],
        "role_id": "owner"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "projects.admin"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "accounts.admin"
      }
    ]
  },
  "resource_hierarchy": [
    {
      "id": "elevendata",
      "type": "project"
    }
  ],
  "resource_title": "string"
}

Properties

Name Type Required Restrictions Description
etag string(byte) false none none
policy mycujoo.auth.v1.Policy false none Authorization policy.
resource_hierarchy [mycujoo.auth.v1.Resource] false none [Resource object reference that is used to represent objects in the IAM system.]
resource_title string false none none

mycujoo.events.v1.GetResponse

{
  "event": {
    "id": "ck9poahb1000601laar5w4dfd",
    "title": "2020 MyCujoo Champions League Final"
  }
}

Properties

Name Type Required Restrictions Description
event mycujoo.events.v1.Event false none none

mycujoo.events.v1.ListRequest.Include

"INCLUDE_UNSPECIFIED"

Properties

Name Type Required Restrictions Description
- INCLUDE_TOTAL_SIZE: When included, response will contain metadata about total number of
available results irrespective of pagination string false none none

Enumerated Values

Property Value
- INCLUDE_TOTAL_SIZE: When included, response will contain metadata about total number of
available results irrespective of pagination INCLUDE_UNSPECIFIED
- INCLUDE_TOTAL_SIZE: When included, response will contain metadata about total number of
available results irrespective of pagination INCLUDE_TOTAL_SIZE

mycujoo.events.v1.ListRequest.Order

"ORDER_UNSPECIFIED"

Properties

Name Type Required Restrictions Description
- ORDER_UNSPECIFIED: When order is unspecified it internally defaults to date descending

Enumerated Values

Property Value
- ORDER_UNSPECIFIED: When order is unspecified it internally defaults to date descending

mycujoo.events.v1.ListResponse

{
  "events": [
    {
      "id": "ck9poahb1000601laar5w4dfd",
      "title": "2020 MyCujoo Champions League Final"
    }
  ],
  "next_page_token": "string",
  "previous_page_token": "string",
  "total_size": 0
}

Properties

Name Type Required Restrictions Description
events [mycujoo.events.v1.Event] false none none
next_page_token string false none none
previous_page_token string false none none
total_size integer(int32) false none The total count of items in the list irrespective of pagination.
Will be present only when request 'include' field ask for it.

mycujoo.events.v1.Location

{
  "online": "string",
  "physical": {
    "city": "Amsterdam",
    "continent_code": "EU",
    "country_code": "NL",
    "venue": "Johan Cruijff ArenA"
  }
}

This could either be a physical location (eg. Amsterdam Arena Blvd) or a URL. When location type is set to online, the sent string will be validated as URL (https://www.amsterdamarena.com/).

Properties

Name Type Required Restrictions Description
online string false none none
physical mycujoo.events.v1.LocationPhysical false none none

mycujoo.events.v1.LocationPhysical

{
  "city": "Amsterdam",
  "continent_code": "EU",
  "country_code": "NL",
  "venue": "Johan Cruijff ArenA"
}

Properties

Name Type Required Restrictions Description
city string false none none
continent_code string false none none
coordinates google.type.LatLng false none An object that represents a latitude/longitude pair. This is expressed as a
pair of doubles to represent degrees latitude and degrees longitude. Unless
specified otherwise, this must conform to the
WGS84
standard
. Values must be within normalized ranges.
country_code string false none none
venue string false none none

mycujoo.events.v1.RemoveStreamResponse

{
  "event_id": "string",
  "stream_id": "string"
}

Properties

Name Type Required Restrictions Description
event_id string false none none
stream_id string false none none

mycujoo.events.v1.RemoveTimelineResponse

{
  "event_id": "string",
  "timeline_id": "string"
}

Properties

Name Type Required Restrictions Description
event_id string false none none
timeline_id string false none none

mycujoo.events.v1.SetIamPolicyResponse

{}

When there is no error result is empty

Properties

None

mycujoo.events.v1.TestIamPermissionsRequest

{
  "permissions": [
    "projects.create",
    "projects.update",
    "projects.delete"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
}

Properties

Name Type Required Restrictions Description
permissions [string] true none none
resource mycujoo.auth.v1.Resource true none Resource object reference that is used to represent objects in the IAM system.

mycujoo.events.v1.TestIamPermissionsResponse

{
  "permissions": [
    "projects.create",
    "projects.update"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
}

Properties

Name Type Required Restrictions Description
permissions [string] false none none
resource mycujoo.auth.v1.Resource false none Resource object reference that is used to represent objects in the IAM system.

mycujoo.events.v1.UpdateRequestFields

{
  "content_visibility": "CONTENT_VISIBILITY_UNSPECIFIED",
  "description": "string",
  "is_test": true,
  "labels": {
    "property1": "string",
    "property2": "string"
  },
  "location": {
    "online": "string",
    "physical": {
      "city": "Amsterdam",
      "continent_code": "EU",
      "country_code": "NL",
      "venue": "Johan Cruijff ArenA"
    }
  },
  "metadata": {
    "data": {},
    "schema_id": "string"
  },
  "organiser": "string",
  "poster_asset_id": "string",
  "poster_url": "string",
  "start_time": "2019-08-24T14:15:22Z",
  "status": "EVENT_STATUS_UNSPECIFIED",
  "thumbnail_asset_id": "string",
  "thumbnail_url": "string",
  "timezone": "string",
  "title": "string"
}

Properties

Name Type Required Restrictions Description
content_visibility mycujoo.events.v1.ContentVisibility false none - CONTENT_VISIBILITY_UNSPECIFIED: When event visibility is not specified
- CONTENT_VISIBILITY_PUBLISHED: It's when event is visible on list and accessible using url.
- CONTENT_VISIBILITY_UNLISTED: It's when event is accessible just using url it will not be shown on lists.
- CONTENT_VISIBILITY_HIDDEN: It's when event is completely hidden and is not accessible by url and will not be shown on the lists.
description string false none none
is_test boolean false none none
labels object false none User defined labels for the event.
Deprecated: Use metadata with indexed fields instead.
ยป additionalProperties string false none none
location mycujoo.events.v1.Location false none This could either be a physical location (eg. Amsterdam Arena Blvd) or a
URL. When location type is set to online, the sent string will be
validated as URL (https://www.amsterdamarena.com/).
metadata mycujoo.events.v1.EventMetadata false none none
organiser string false none none
poster_asset_id string false none none
poster_url string false none none
start_time string(date-time) false none none
status mycujoo.events.v1.EventStatus false none - EVENT_STATUS_UNSPECIFIED: The default value for event status. In real world it will always be
specified.
- EVENT_STATUS_SCHEDULED: Initial status for created event.
It's when event will happend in the future and the date is known.
- EVENT_STATUS_RESCHEDULED: When the event was rescheduled and the future date is known.
- EVENT_STATUS_CANCELLED: When the event is cancelled and is not going to happen.
- EVENT_STATUS_POSTPONED: When the event is rescheduled but the future date is not known yet.
- EVENT_STATUS_DELAYED: When the event is still going to happen around defined start date but is
delayed by some amount of time.
- EVENT_STATUS_STARTED: When the event has started and is live.
- EVENT_STATUS_PAUSED: When the event has paused.
- EVENT_STATUS_SUSPENDED: When the event is suspended and it's not yet known if it's going to happen
in the future.
- EVENT_STATUS_FINISHED: When the event has finished and is no longer live.
thumbnail_asset_id string false none none
thumbnail_url string false none none
timezone string false none none
title string false none none

mycujoo.events.v1.UpdateResponse

{
  "event": {
    "id": "ck9poahb1000601laar5w4dfd",
    "title": "2020 MyCujoo Champions League Final"
  }
}

Properties

Name Type Required Restrictions Description
event mycujoo.events.v1.Event false none none

mycujoo.geofence.v1.ContentReference

{
  "id": "string",
  "type": "string"
}

ContentReference references some content.

Properties

Name Type Required Restrictions Description
id string false none none
type string false none none

mycujoo.geofence.v1.CreateRequest

{
  "allow": {
    "country_codes": [
      "string"
    ]
  },
  "content_reference": {
    "id": "string",
    "type": "string"
  },
  "disallow": {
    "country_codes": [
      "string"
    ]
  }
}

Properties

Name Type Required Restrictions Description
allow mycujoo.geofence.v1.Settings false none none
content_reference mycujoo.geofence.v1.ContentReference false none ContentReference references some content.
disallow mycujoo.geofence.v1.Settings false none none

mycujoo.geofence.v1.CreateResponse

{}

Properties

None

mycujoo.geofence.v1.DeleteResponse

{}

Properties

None

mycujoo.geofence.v1.Geoblocking

{
  "allow": {
    "country_codes": [
      "string"
    ]
  },
  "disallow": {
    "country_codes": [
      "string"
    ]
  }
}

Geoblocking settings that allows/disallows list of country codes to access the subject

Properties

Name Type Required Restrictions Description
allow mycujoo.geofence.v1.Settings false none none
disallow mycujoo.geofence.v1.Settings false none none

mycujoo.geofence.v1.GetResponse

{
  "geoblocking": {
    "allow": {
      "country_codes": [
        "string"
      ]
    },
    "disallow": {
      "country_codes": [
        "string"
      ]
    }
  }
}

Properties

Name Type Required Restrictions Description
geoblocking mycujoo.geofence.v1.Geoblocking false none none

mycujoo.geofence.v1.Settings

{
  "country_codes": [
    "string"
  ]
}

Properties

Name Type Required Restrictions Description
country_codes [string] false none none

mycujoo.geofence.v1.UpdateResponse

{}

Properties

None

mycujoo.identity.v1.Auth0APICredentials

{
  "client_id": "string",
  "client_secret": "string"
}

Properties

Name Type Required Restrictions Description
client_id string false none Client ID of the application that will be used to access users API, could be found in application settings.
client_secret string false none Client secret users API accessing application, could be found in application settings under "Credentials" tab.

mycujoo.identity.v1.Auth0Integration

{
  "domain": "string",
  "management_webhook_url": "string"
}

Properties

Name Type Required Restrictions Description
domain string false none none
management_webhook_url string false none none

mycujoo.identity.v1.CreateIdentityTokenRequest

{
  "identity_id": "string",
  "is_admin": true,
  "is_test_identity": true
}

Properties

Name Type Required Restrictions Description
identity_id string true none none
is_admin boolean false none none
is_test_identity boolean false none Flag that indicates that this is a tester user. Orders created by tester users will be marked as test ones.

mycujoo.identity.v1.CreateIdentityTokenResponse

{
  "token": "string"
}

Properties

Name Type Required Restrictions Description
token string false none none

mycujoo.identity.v1.GetIdentityResponse

{
  "identity": {
    "create_time": "2019-08-24T14:15:22Z",
    "email": "string",
    "id": "string",
    "name": "string",
    "provider": "PROVIDER_TYPE_UNSPECIFIED",
    "tenant_id": "string"
  }
}

Properties

Name Type Required Restrictions Description
identity mycujoo.identity.v1.Identity false none none

mycujoo.identity.v1.Identity

{
  "create_time": "2019-08-24T14:15:22Z",
  "email": "string",
  "id": "string",
  "name": "string",
  "provider": "PROVIDER_TYPE_UNSPECIFIED",
  "tenant_id": "string"
}

Properties

Name Type Required Restrictions Description
create_time string(date-time) false none none
email string false none none
id string false none none
name string false none none
provider mycujoo.identity.v1.ProviderType false none none
tenant_id string false none none

mycujoo.identity.v1.ListAuth0IntegrationsResponse

{
  "integrations": [
    {
      "domain": "string",
      "management_webhook_url": "string"
    }
  ]
}

Properties

Name Type Required Restrictions Description
integrations [mycujoo.identity.v1.Auth0Integration] false none none

mycujoo.identity.v1.ListIdentitiesResponse

{
  "identities": [
    {
      "create_time": "2019-08-24T14:15:22Z",
      "email": "string",
      "id": "string",
      "name": "string",
      "provider": "PROVIDER_TYPE_UNSPECIFIED",
      "tenant_id": "string"
    }
  ],
  "next_page_token": "string"
}

Properties

Name Type Required Restrictions Description
identities [mycujoo.identity.v1.Identity] false none none
next_page_token string false none none

mycujoo.identity.v1.ListProvidersResponse

{
  "providers": [
    {
      "tenant_id": "string",
      "type": "PROVIDER_TYPE_UNSPECIFIED"
    }
  ]
}

Properties

Name Type Required Restrictions Description
providers [mycujoo.identity.v1.Provider] false none none

mycujoo.identity.v1.ListUserfrontIntegrationsResponse

{
  "integrations": [
    {
      "admin_role_id": "string",
      "public_key": "string",
      "tenant_id": "string",
      "tester_role_id": "string",
      "user_delete_webhook_url": "string"
    }
  ]
}

Properties

Name Type Required Restrictions Description
integrations [mycujoo.identity.v1.UserfrontIntegration] false none none

mycujoo.identity.v1.Provider

{
  "tenant_id": "string",
  "type": "PROVIDER_TYPE_UNSPECIFIED"
}

Properties

Name Type Required Restrictions Description
tenant_id string false none none
type mycujoo.identity.v1.ProviderType false none none

mycujoo.identity.v1.ProviderType

"PROVIDER_TYPE_UNSPECIFIED"

Properties

Name Type Required Restrictions Description
anonymous string false none none

Enumerated Values

Property Value
anonymous PROVIDER_TYPE_UNSPECIFIED
anonymous PROVIDER_TYPE_AUTH0
anonymous PROVIDER_TYPE_USERFRONT

mycujoo.identity.v1.UpsertAuth0IntegrationResponse

{}

Properties

None

mycujoo.identity.v1.UpsertUserfrontIntegrationResponse

{}

Properties

None

mycujoo.identity.v1.UserfrontIntegration

{
  "admin_role_id": "string",
  "public_key": "string",
  "tenant_id": "string",
  "tester_role_id": "string",
  "user_delete_webhook_url": "string"
}

Properties

Name Type Required Restrictions Description
admin_role_id string false none none
public_key string false none none
tenant_id string false none none
tester_role_id string false none none
user_delete_webhook_url string false none none

mycujoo.integrations.v1beta1.CreateRequest

{
  "source": "SOURCE_UNSPECIFIED",
  "target": {
    "google_cloud_pub_sub": {
      "project_id": "string",
      "service_account_json": "string",
      "topic_id": "string"
    },
    "webhook": {
      "headers": {
        "authorization": "Basic YWxhZGRpbjpvcGVuc2VzYW1l"
      },
      "params": {
        "src": "mcls"
      },
      "url": "https://domain.com/events"
    }
  }
}

Properties

Name Type Required Restrictions Description
source mycujoo.integrations.v1beta1.Integration.Source false none - SOURCE_EVENTS: SOURCE_EVENTS sends an update whenever event gets updated
- SOURCE_STREAM: SOURCE_STREAM sends an update whenever stream gets updated
- SOURCE_STREAM_URL: SOURCE_STREAM_URL sends an update whenever stream URL gets updated
- SOURCE_GEOFENCE: SOURCE_GEOFENCE sends an update whenever geofence settings gets updated
Geofence subject_id is mapped to id in message payload
- SOURCE_SUBSCRIPTION_PACKAGE: SOURCE_SUBSCRIPTION_PACKAGE sends an update whenever subscription package
gets updated
- SOURCE_ANNOTATION: SOURCE_ANNOTATIONS sends an update whenever annotation gets updated
- SOURCE_ANNOTATION_TYPE: SOURCE_ANNOTATION_TYPE sends an update whenever annotation type gets updated
- SOURCE_ASSET: SOURCE_ASSET sends an update whenever asset gets updated
target mycujoo.integrations.v1beta1.Integration.Target false none none

mycujoo.integrations.v1beta1.CreateResponse

{
  "integration": {
    "create_time": "2019-08-24T14:15:22Z",
    "id": "string",
    "source": "SOURCE_UNSPECIFIED",
    "target": {
      "google_cloud_pub_sub": {
        "project_id": "string",
        "service_account_json": "string",
        "topic_id": "string"
      },
      "webhook": {
        "headers": {
          "authorization": "Basic YWxhZGRpbjpvcGVuc2VzYW1l"
        },
        "params": {
          "src": "mcls"
        },
        "url": "https://domain.com/events"
      }
    }
  }
}

Properties

Name Type Required Restrictions Description
integration mycujoo.integrations.v1beta1.Integration false none Integration is a configuration of an automated message sent to the target
whenever source is updated. The payload is a JSON object that contains the ID
and the type of associated object. Payload is the same for all target types.

Example payload:
{
"id": "1zMEuo4h93Ur1QGZdhrd5nGwIv6",
"type": "stream_url"
}

Regardless of integration target type, for each message that is sent
integration awaits its successful response from the target. The timeout for
the response is 10s and after that time request is considered as failed. If
there is no successful response or timeout is reached, request is retried
exponentially up to 1 minute. If there is still no succesful response from
the target, failed request is ignored and next message is processed.

Example sequence:
1. 0.0046s
2. 1.1189s
3. 3.2849s
4. 5.9132s
5. 9.0846s
6. 13.7728s
7. 22.7921s
8. 29.2406s
9. 40.4653s
10. 55.7732s

mycujoo.integrations.v1beta1.DeleteResponse

{}

Properties

None

mycujoo.integrations.v1beta1.GetResponse

{
  "integration": {
    "create_time": "2019-08-24T14:15:22Z",
    "id": "string",
    "source": "SOURCE_UNSPECIFIED",
    "target": {
      "google_cloud_pub_sub": {
        "project_id": "string",
        "service_account_json": "string",
        "topic_id": "string"
      },
      "webhook": {
        "headers": {
          "authorization": "Basic YWxhZGRpbjpvcGVuc2VzYW1l"
        },
        "params": {
          "src": "mcls"
        },
        "url": "https://domain.com/events"
      }
    }
  }
}

Properties

Name Type Required Restrictions Description
integration mycujoo.integrations.v1beta1.Integration false none Integration is a configuration of an automated message sent to the target
whenever source is updated. The payload is a JSON object that contains the ID
and the type of associated object. Payload is the same for all target types.

Example payload:
{
"id": "1zMEuo4h93Ur1QGZdhrd5nGwIv6",
"type": "stream_url"
}

Regardless of integration target type, for each message that is sent
integration awaits its successful response from the target. The timeout for
the response is 10s and after that time request is considered as failed. If
there is no successful response or timeout is reached, request is retried
exponentially up to 1 minute. If there is still no succesful response from
the target, failed request is ignored and next message is processed.

Example sequence:
1. 0.0046s
2. 1.1189s
3. 3.2849s
4. 5.9132s
5. 9.0846s
6. 13.7728s
7. 22.7921s
8. 29.2406s
9. 40.4653s
10. 55.7732s

mycujoo.integrations.v1beta1.GoogleCloudPubSub

{
  "project_id": "string",
  "service_account_json": "string",
  "topic_id": "string"
}

Google Cloud Pub/Sub integration publishes messages to configured topic id

Properties

Name Type Required Restrictions Description
project_id string false none none
service_account_json string false none none
topic_id string true none none

mycujoo.integrations.v1beta1.Integration

{
  "create_time": "2019-08-24T14:15:22Z",
  "id": "string",
  "source": "SOURCE_UNSPECIFIED",
  "target": {
    "google_cloud_pub_sub": {
      "project_id": "string",
      "service_account_json": "string",
      "topic_id": "string"
    },
    "webhook": {
      "headers": {
        "authorization": "Basic YWxhZGRpbjpvcGVuc2VzYW1l"
      },
      "params": {
        "src": "mcls"
      },
      "url": "https://domain.com/events"
    }
  }
}

Integration is a configuration of an automated message sent to the target whenever source is updated. The payload is a JSON object that contains the ID and the type of associated object. Payload is the same for all target types.

Example payload: { "id": "1zMEuo4h93Ur1QGZdhrd5nGwIv6", "type": "stream_url" }

Regardless of integration target type, for each message that is sent integration awaits its successful response from the target. The timeout for the response is 10s and after that time request is considered as failed. If there is no successful response or timeout is reached, request is retried exponentially up to 1 minute. If there is still no succesful response from the target, failed request is ignored and next message is processed.

Example sequence: 1. 0.0046s 2. 1.1189s 3. 3.2849s 4. 5.9132s 5. 9.0846s 6. 13.7728s 7. 22.7921s 8. 29.2406s 9. 40.4653s 10. 55.7732s

Properties

Name Type Required Restrictions Description
create_time string(date-time) false none none
id string false none none
source mycujoo.integrations.v1beta1.Integration.Source false none - SOURCE_EVENTS: SOURCE_EVENTS sends an update whenever event gets updated
- SOURCE_STREAM: SOURCE_STREAM sends an update whenever stream gets updated
- SOURCE_STREAM_URL: SOURCE_STREAM_URL sends an update whenever stream URL gets updated
- SOURCE_GEOFENCE: SOURCE_GEOFENCE sends an update whenever geofence settings gets updated
Geofence subject_id is mapped to id in message payload
- SOURCE_SUBSCRIPTION_PACKAGE: SOURCE_SUBSCRIPTION_PACKAGE sends an update whenever subscription package
gets updated
- SOURCE_ANNOTATION: SOURCE_ANNOTATIONS sends an update whenever annotation gets updated
- SOURCE_ANNOTATION_TYPE: SOURCE_ANNOTATION_TYPE sends an update whenever annotation type gets updated
- SOURCE_ASSET: SOURCE_ASSET sends an update whenever asset gets updated
target mycujoo.integrations.v1beta1.Integration.Target false none none

mycujoo.integrations.v1beta1.Integration.Source

"SOURCE_UNSPECIFIED"

Source is a list of available data sources to use in integration

Properties

Name Type Required Restrictions Description
Source is a list of available data sources to use in integration string false none - SOURCE_EVENTS: SOURCE_EVENTS sends an update whenever event gets updated
- SOURCE_STREAM: SOURCE_STREAM sends an update whenever stream gets updated
- SOURCE_STREAM_URL: SOURCE_STREAM_URL sends an update whenever stream URL gets updated
- SOURCE_GEOFENCE: SOURCE_GEOFENCE sends an update whenever geofence settings gets updated
Geofence subject_id is mapped to id in message payload
- SOURCE_SUBSCRIPTION_PACKAGE: SOURCE_SUBSCRIPTION_PACKAGE sends an update whenever subscription package
gets updated
- SOURCE_ANNOTATION: SOURCE_ANNOTATIONS sends an update whenever annotation gets updated
- SOURCE_ANNOTATION_TYPE: SOURCE_ANNOTATION_TYPE sends an update whenever annotation type gets updated
- SOURCE_ASSET: SOURCE_ASSET sends an update whenever asset gets updated

Enumerated Values

Property Value
Source is a list of available data sources to use in integration SOURCE_UNSPECIFIED
Source is a list of available data sources to use in integration SOURCE_EVENTS
Source is a list of available data sources to use in integration SOURCE_STREAM
Source is a list of available data sources to use in integration SOURCE_STREAM_URL
Source is a list of available data sources to use in integration SOURCE_GEOFENCE
Source is a list of available data sources to use in integration SOURCE_SUBSCRIPTION_PACKAGE
Source is a list of available data sources to use in integration SOURCE_ANNOTATION
Source is a list of available data sources to use in integration SOURCE_ANNOTATION_TYPE
Source is a list of available data sources to use in integration SOURCE_ASSET

mycujoo.integrations.v1beta1.Integration.Target

{
  "google_cloud_pub_sub": {
    "project_id": "string",
    "service_account_json": "string",
    "topic_id": "string"
  },
  "webhook": {
    "headers": {
      "authorization": "Basic YWxhZGRpbjpvcGVuc2VzYW1l"
    },
    "params": {
      "src": "mcls"
    },
    "url": "https://domain.com/events"
  }
}

Target is a list of available targets to use in integration

Properties

Name Type Required Restrictions Description
google_cloud_pub_sub mycujoo.integrations.v1beta1.GoogleCloudPubSub false none none
webhook mycujoo.integrations.v1beta1.Webhook false none none

mycujoo.integrations.v1beta1.ListRequest.Order

"ORDER_UNSPECIFIED"

An enum value that indicates results order in the response

Properties

Name Type Required Restrictions Description
An enum value that indicates results order in the response string false none - ORDER_CREATE_TIME_ASC: Results sorted by create time ascending
- ORDER_CREATE_TIME_DESC: Results sorted by create time descending

Enumerated Values

Property Value
An enum value that indicates results order in the response ORDER_UNSPECIFIED
An enum value that indicates results order in the response ORDER_CREATE_TIME_ASC
An enum value that indicates results order in the response ORDER_CREATE_TIME_DESC

mycujoo.integrations.v1beta1.ListResponse

{
  "integrations": [
    {
      "create_time": "2019-08-24T14:15:22Z",
      "id": "string",
      "source": "SOURCE_UNSPECIFIED",
      "target": {
        "google_cloud_pub_sub": {
          "project_id": "string",
          "service_account_json": "string",
          "topic_id": "string"
        },
        "webhook": {
          "headers": {
            "authorization": "Basic YWxhZGRpbjpvcGVuc2VzYW1l"
          },
          "params": {
            "src": "mcls"
          },
          "url": "https://domain.com/events"
        }
      }
    }
  ],
  "next_page_token": "string"
}

Properties

Name Type Required Restrictions Description
integrations [mycujoo.integrations.v1beta1.Integration] false none [Integration is a configuration of an automated message sent to the target
whenever source is updated. The payload is a JSON object that contains the ID
and the type of associated object. Payload is the same for all target types.

Example payload:
{
"id": "1zMEuo4h93Ur1QGZdhrd5nGwIv6",
"type": "stream_url"
}

Regardless of integration target type, for each message that is sent
integration awaits its successful response from the target. The timeout for
the response is 10s and after that time request is considered as failed. If
there is no successful response or timeout is reached, request is retried
exponentially up to 1 minute. If there is still no succesful response from
the target, failed request is ignored and next message is processed.

Example sequence:
1. 0.0046s
2. 1.1189s
3. 3.2849s
4. 5.9132s
5. 9.0846s
6. 13.7728s
7. 22.7921s
8. 29.2406s
9. 40.4653s
10. 55.7732s]
next_page_token string false none none

mycujoo.integrations.v1beta1.UpdateRequest.UpdateFields

{
  "source": "SOURCE_UNSPECIFIED",
  "target": {
    "google_cloud_pub_sub": {
      "project_id": "string",
      "service_account_json": "string",
      "topic_id": "string"
    },
    "webhook": {
      "headers": {
        "authorization": "Basic YWxhZGRpbjpvcGVuc2VzYW1l"
      },
      "params": {
        "src": "mcls"
      },
      "url": "https://domain.com/events"
    }
  }
}

Properties

Name Type Required Restrictions Description
source mycujoo.integrations.v1beta1.Integration.Source false none - SOURCE_EVENTS: SOURCE_EVENTS sends an update whenever event gets updated
- SOURCE_STREAM: SOURCE_STREAM sends an update whenever stream gets updated
- SOURCE_STREAM_URL: SOURCE_STREAM_URL sends an update whenever stream URL gets updated
- SOURCE_GEOFENCE: SOURCE_GEOFENCE sends an update whenever geofence settings gets updated
Geofence subject_id is mapped to id in message payload
- SOURCE_SUBSCRIPTION_PACKAGE: SOURCE_SUBSCRIPTION_PACKAGE sends an update whenever subscription package
gets updated
- SOURCE_ANNOTATION: SOURCE_ANNOTATIONS sends an update whenever annotation gets updated
- SOURCE_ANNOTATION_TYPE: SOURCE_ANNOTATION_TYPE sends an update whenever annotation type gets updated
- SOURCE_ASSET: SOURCE_ASSET sends an update whenever asset gets updated
target mycujoo.integrations.v1beta1.Integration.Target false none none

mycujoo.integrations.v1beta1.UpdateResponse

{
  "integration": {
    "create_time": "2019-08-24T14:15:22Z",
    "id": "string",
    "source": "SOURCE_UNSPECIFIED",
    "target": {
      "google_cloud_pub_sub": {
        "project_id": "string",
        "service_account_json": "string",
        "topic_id": "string"
      },
      "webhook": {
        "headers": {
          "authorization": "Basic YWxhZGRpbjpvcGVuc2VzYW1l"
        },
        "params": {
          "src": "mcls"
        },
        "url": "https://domain.com/events"
      }
    }
  }
}

Properties

Name Type Required Restrictions Description
integration mycujoo.integrations.v1beta1.Integration false none Integration is a configuration of an automated message sent to the target
whenever source is updated. The payload is a JSON object that contains the ID
and the type of associated object. Payload is the same for all target types.

Example payload:
{
"id": "1zMEuo4h93Ur1QGZdhrd5nGwIv6",
"type": "stream_url"
}

Regardless of integration target type, for each message that is sent
integration awaits its successful response from the target. The timeout for
the response is 10s and after that time request is considered as failed. If
there is no successful response or timeout is reached, request is retried
exponentially up to 1 minute. If there is still no succesful response from
the target, failed request is ignored and next message is processed.

Example sequence:
1. 0.0046s
2. 1.1189s
3. 3.2849s
4. 5.9132s
5. 9.0846s
6. 13.7728s
7. 22.7921s
8. 29.2406s
9. 40.4653s
10. 55.7732s

mycujoo.integrations.v1beta1.Webhook

{
  "headers": {
    "authorization": "Basic YWxhZGRpbjpvcGVuc2VzYW1l"
  },
  "params": {
    "src": "mcls"
  },
  "url": "https://domain.com/events"
}

Webhook is a HTTP request that is send with configured headers and params to specified URL

Properties

Name Type Required Restrictions Description
headers object false none none
ยป additionalProperties string false none none
params object false none none
ยป additionalProperties string false none none
url string false none none

mycujoo.metadata.v1.CreateDataRequest

{
  "data": {
    "competitionName": {
      "string": "Champions League"
    },
    "team": {
      "name": "Legia Warsaw",
      "players": [
        "Marek Saganowski"
      ]
    },
    "title": "Final 2020"
  },
  "schema_id": "1do8zuDeZKfh2YSgzd2ek69jhOY"
}

Request to store data

Properties

Name Type Required Restrictions Description
data object true none none
schema_id string true none none

mycujoo.metadata.v1.CreateDataResponse

{
  "data": {
    "competitionName": {
      "string": "Champions League"
    },
    "team": {
      "name": "Legia Warsaw",
      "players": [
        "Marek Saganowski"
      ]
    },
    "title": "Final 2020"
  },
  "id": "ck9be30x30lnk1cmsengq2tq2"
}

Response of data store request

Properties

Name Type Required Restrictions Description
data object false none none
id string false none none

mycujoo.metadata.v1.CreateSchemaResponse

{
  "id": "ck9be30x30lnk1cmsengq2tq2"
}

Response of create schema request

Properties

Name Type Required Restrictions Description
id string false none none

mycujoo.metadata.v1.DeleteDataResponse

{
  "id": "ck9be30x30lnk1cmsengq2tq2"
}

Response of delete data request

Properties

Name Type Required Restrictions Description
id string false none none

mycujoo.metadata.v1.DeleteSchemaResponse

{
  "id": "ck9be30x30lnk1cmsengq2tq2"
}

Response of delete schema request

Properties

Name Type Required Restrictions Description
id string false none none

mycujoo.metadata.v1.GetDataResponse

{
  "data": {
    "competitionName": {
      "string": "Champions League"
    },
    "team": {
      "name": "Legia Warsaw",
      "players": [
        "Marek Saganowski"
      ]
    },
    "title": "Final 2020"
  },
  "schema_id": "1do8zuDeZKfh2YSgzd2ek69jhOY"
}

Response of get data request

Properties

Name Type Required Restrictions Description
data object false none none
schema_id string false none none

mycujoo.metadata.v1.GetSchemaIamPolicyResponse

{
  "etag": "string",
  "policy": {
    "bindings": [
      {
        "account_ids": [
          "2GzbST9DaEPsNcDTaW30GWnfZyw",
          "2GzbTHf7FfMyGv2F71FWwGRzKWb"
        ],
        "role_id": "owner"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "projects.admin"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "accounts.admin"
      }
    ]
  },
  "resource_hierarchy": [
    {
      "id": "elevendata",
      "type": "project"
    }
  ],
  "resource_title": "string"
}

Properties

Name Type Required Restrictions Description
etag string(byte) false none none
policy mycujoo.auth.v1.Policy false none Authorization policy.
resource_hierarchy [mycujoo.auth.v1.Resource] false none [Resource object reference that is used to represent objects in the IAM system.]
resource_title string false none none

mycujoo.metadata.v1.GetSchemaResponse

{
  "schema": {
    "fields": [
      {
        "name": "title",
        "type": "string"
      },
      {
        "name": "competitionName",
        "type": [
          "null",
          "string"
        ]
      },
      {
        "name": "team",
        "type": {
          "fields": [
            {
              "name": "name",
              "type": "string"
            },
            {
              "name": "players",
              "type": {
                "default": [],
                "items": "string",
                "type": "array"
              }
            }
          ],
          "name": "recordTeam",
          "type": "record"
        }
      }
    ],
    "id": "1do8zuDeZKfh2YSgzd2ek69jhOY",
    "title": "test schema"
  }
}

Response of get schema request

Properties

Name Type Required Restrictions Description
schema mycujoo.metadata.v1.Schema false none none

mycujoo.metadata.v1.ListSchemasRequest.Order

"ORDER_UNSPECIFIED"

Properties

Name Type Required Restrictions Description
- ORDER_UNSPECIFIED: When order is unspecified it defaults to creation time descending

Enumerated Values

Property Value
- ORDER_UNSPECIFIED: When order is unspecified it defaults to creation time descending

mycujoo.metadata.v1.ListSchemasResponse

{
  "schemas": [
    {
      "id": "1do8zuDeZKfh2YSgzd2ek69jhOY",
      "title": "test schema"
    }
  ]
}

Response of list request

Properties

Name Type Required Restrictions Description
next_page_token string false none none
previous_page_token string false none none
schemas [mycujoo.metadata.v1.Schema] false none none

mycujoo.metadata.v1.Schema

{
  "custom_editor_url": "string",
  "fields": [
    {}
  ],
  "id": "string",
  "indexable_paths": [
    "string"
  ],
  "resource_type": "SCHEMA_RESOURCE_TYPE_UNSPECIFIED",
  "searchable_paths": [
    "string"
  ],
  "title": "string",
  "visibility": "SCHEMA_VISIBILITY_UNSPECIFIED"
}

Properties

Name Type Required Restrictions Description
custom_editor_url string false none none
fields [object] false none none
id string false read-only none
indexable_paths [string] false none none
resource_type mycujoo.metadata.v1.SchemaResourceType false none none
searchable_paths [string] false none none
title string false none none
visibility mycujoo.metadata.v1.SchemaVisibility false none none

mycujoo.metadata.v1.SchemaResourceType

"SCHEMA_RESOURCE_TYPE_UNSPECIFIED"

Properties

Name Type Required Restrictions Description
anonymous string false none none

Enumerated Values

Property Value
anonymous SCHEMA_RESOURCE_TYPE_UNSPECIFIED
anonymous SCHEMA_RESOURCE_TYPE_EVENT_TYPE
anonymous SCHEMA_RESOURCE_TYPE_ACTION

mycujoo.metadata.v1.SchemaVisibility

"SCHEMA_VISIBILITY_UNSPECIFIED"

Properties

Name Type Required Restrictions Description
anonymous string false none none

Enumerated Values

Property Value
anonymous SCHEMA_VISIBILITY_UNSPECIFIED
anonymous SCHEMA_VISIBILITY_PUBLISHED
anonymous SCHEMA_VISIBILITY_UNLISTED
anonymous SCHEMA_VISIBILITY_HIDDEN

mycujoo.metadata.v1.SetSchemaIamPolicyResponse

{}

When there is no error result is empty

Properties

None

mycujoo.metadata.v1.TestIamPermissionsRequest

{
  "permissions": [
    "projects.create",
    "projects.update",
    "projects.delete"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
}

Properties

Name Type Required Restrictions Description
permissions [string] true none none
resource mycujoo.auth.v1.Resource true none Resource object reference that is used to represent objects in the IAM system.

mycujoo.metadata.v1.TestIamPermissionsResponse

{
  "permissions": [
    "projects.create",
    "projects.update"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
}

Properties

Name Type Required Restrictions Description
permissions [string] false none none
resource mycujoo.auth.v1.Resource false none Resource object reference that is used to represent objects in the IAM system.

mycujoo.metadata.v1.UpdateDataRequest.UpdateFields

{
  "data": {},
  "schema_id": "string"
}

Properties

Name Type Required Restrictions Description
data object false none none
schema_id string false none none

mycujoo.metadata.v1.UpdateDataResponse

{
  "data": {
    "competitionName": {
      "string": "Champions League"
    },
    "team": {
      "name": "Legia Warsaw",
      "players": [
        "Marek Saganowski"
      ]
    },
    "title": "Final 2020"
  }
}

Response of data update request

Properties

Name Type Required Restrictions Description
data object false none none

mycujoo.metadata.v1.UpdateSchemaResponse

{
  "schema": {
    "custom_editor_url": "string",
    "fields": [
      {}
    ],
    "id": "string",
    "indexable_paths": [
      "string"
    ],
    "resource_type": "SCHEMA_RESOURCE_TYPE_UNSPECIFIED",
    "searchable_paths": [
      "string"
    ],
    "title": "string",
    "visibility": "SCHEMA_VISIBILITY_UNSPECIFIED"
  }
}

Response of schema update request

Properties

Name Type Required Restrictions Description
schema mycujoo.metadata.v1.Schema false none none

mycujoo.metadata.v1beta1.CreateDataRequest

{
  "data": {
    "competitionName": {
      "string": "Champions League"
    },
    "team": {
      "name": "Legia Warsaw",
      "players": [
        "Marek Saganowski"
      ]
    },
    "title": "Final 2020"
  },
  "schema_id": "1do8zuDeZKfh2YSgzd2ek69jhOY"
}

Request to store data

Properties

Name Type Required Restrictions Description
data object true none none
schema_id string true none none

mycujoo.metadata.v1beta1.CreateDataResponse

{
  "data": {
    "competitionName": {
      "string": "Champions League"
    },
    "team": {
      "name": "Legia Warsaw",
      "players": [
        "Marek Saganowski"
      ]
    },
    "title": "Final 2020"
  },
  "id": "ck9be30x30lnk1cmsengq2tq2"
}

Response of data store request

Properties

Name Type Required Restrictions Description
data object false none none
id string false none none

mycujoo.metadata.v1beta1.CreateSchemaRequest

{
  "fields": [
    {
      "name": "title",
      "type": "string"
    },
    {
      "name": "competitionName",
      "type": [
        "null",
        "string"
      ]
    },
    {
      "name": "team",
      "type": {
        "fields": [
          {
            "name": "name",
            "type": "string"
          },
          {
            "name": "players",
            "type": {
              "default": [],
              "items": "string",
              "type": "array"
            }
          }
        ],
        "name": "recordTeam",
        "type": "record"
      }
    }
  ],
  "title": "test schema"
}

Request to create schema

Properties

Name Type Required Restrictions Description
category string false none none
fields [object] true none none
title string true none none

mycujoo.metadata.v1beta1.CreateSchemaResponse

{
  "id": "ck9be30x30lnk1cmsengq2tq2"
}

Response of create schema request

Properties

Name Type Required Restrictions Description
id string false none none

mycujoo.metadata.v1beta1.DeleteDataResponse

{
  "id": "ck9be30x30lnk1cmsengq2tq2"
}

Response of delete data request

Properties

Name Type Required Restrictions Description
id string false none none

mycujoo.metadata.v1beta1.DeleteSchemaResponse

{
  "id": "ck9be30x30lnk1cmsengq2tq2"
}

Response of delete schema request

Properties

Name Type Required Restrictions Description
id string false none none

mycujoo.metadata.v1beta1.GetDataResponse

{
  "data": {
    "competitionName": {
      "string": "Champions League"
    },
    "team": {
      "name": "Legia Warsaw",
      "players": [
        "Marek Saganowski"
      ]
    },
    "title": "Final 2020"
  },
  "schema_id": "1do8zuDeZKfh2YSgzd2ek69jhOY"
}

Response of get data request

Properties

Name Type Required Restrictions Description
data object false none none
schema_id string false none none

mycujoo.metadata.v1beta1.GetRawDataResponse

{
  "data": {},
  "schema_id": "string"
}

Properties

Name Type Required Restrictions Description
data object false none none
schema_id string false none none

mycujoo.metadata.v1beta1.GetSchemaResponse

{
  "schema": {
    "fields": [
      {
        "name": "title",
        "type": "string"
      },
      {
        "name": "competitionName",
        "type": [
          "null",
          "string"
        ]
      },
      {
        "name": "team",
        "type": {
          "fields": [
            {
              "name": "name",
              "type": "string"
            },
            {
              "name": "players",
              "type": {
                "default": [],
                "items": "string",
                "type": "array"
              }
            }
          ],
          "name": "recordTeam",
          "type": "record"
        }
      }
    ],
    "id": "1do8zuDeZKfh2YSgzd2ek69jhOY",
    "title": "test schema"
  }
}

Response of get schema request

Properties

Name Type Required Restrictions Description
schema mycujoo.metadata.v1beta1.Schema false none none

mycujoo.metadata.v1beta1.ListSchemasRequest.Order

"ORDER_UNSPECIFIED"

Properties

Name Type Required Restrictions Description
- ORDER_UNSPECIFIED: When order is unspecified it defaults to creation time descending

Enumerated Values

Property Value
- ORDER_UNSPECIFIED: When order is unspecified it defaults to creation time descending

mycujoo.metadata.v1beta1.ListSchemasResponse

{
  "schemas": [
    {
      "id": "1do8zuDeZKfh2YSgzd2ek69jhOY",
      "title": "test schema"
    }
  ]
}

Response of list request

Properties

Name Type Required Restrictions Description
next_page_token string false none none
previous_page_token string false none none
schemas [mycujoo.metadata.v1beta1.ListSchemasResponse.Schema] false none none

mycujoo.metadata.v1beta1.ListSchemasResponse.Schema

{
  "category": "string",
  "id": "string",
  "title": "string"
}

Properties

Name Type Required Restrictions Description
category string false none none
id string false none none
title string false none none

mycujoo.metadata.v1beta1.Schema

{
  "category": "string",
  "fields": [
    {}
  ],
  "id": "string",
  "title": "string"
}

Properties

Name Type Required Restrictions Description
category string false none none
fields [object] false none none
id string false none none
title string false none none

mycujoo.metadata.v1beta1.UpdateDataRequest.UpdateFields

{
  "data": {},
  "schema_id": "string"
}

Properties

Name Type Required Restrictions Description
data object false none none
schema_id string false none none

mycujoo.metadata.v1beta1.UpdateDataResponse

{
  "data": {
    "competitionName": {
      "string": "Champions League"
    },
    "team": {
      "name": "Legia Warsaw",
      "players": [
        "Marek Saganowski"
      ]
    },
    "title": "Final 2020"
  }
}

Response of data update request

Properties

Name Type Required Restrictions Description
data object false none none

mycujoo.metadata.v1beta1.UpdateSchemaRequest.UpdateFields

{
  "fields": [
    {
      "name": "title",
      "type": "string"
    }
  ],
  "title": "Final 2021"
}

Properties

Name Type Required Restrictions Description
category string false none none
fields [object] false none none
title string false none none

mycujoo.metadata.v1beta1.UpdateSchemaResponse

{
  "schema": {
    "category": "string",
    "fields": [
      {}
    ],
    "id": "string",
    "title": "string"
  }
}

Response of schema update request

Properties

Name Type Required Restrictions Description
schema mycujoo.metadata.v1beta1.Schema false none none

mycujoo.organizations.v1.CreateOrganizationRequest

{
  "display_name": "string",
  "org_id": "string",
  "owner": {
    "email": "string",
    "first_name": "string",
    "id": "string",
    "is_verified": true,
    "last_name": "string"
  },
  "owner_password": "string"
}

Properties

Name Type Required Restrictions Description
display_name string false none none
org_id string true none Human readable, slug-compatible short identifier, like "cbf" or "live-mode"
Must be unique and also with existing projects IDs.
owner mycujoo.accounts.v1.Account true none none
owner_password string true none Owner password must be at least 8 characters, at most 100,
contain at least one alpha and one number or special char.
No more than 3 repeating characters.

mycujoo.organizations.v1.CreateOrganizationResponse

{
  "organization": {
    "content_delivery_settings": {
      "embed_domains": [
        "string"
      ],
      "public_keys": [
        "string"
      ]
    },
    "display_name": "string",
    "id": "string",
    "is_enabled": true,
    "owner_id": "string"
  }
}

Properties

Name Type Required Restrictions Description
organization mycujoo.organizations.v1.Organization false none none

mycujoo.organizations.v1.GetIamPolicyResponse

{
  "etag": "string",
  "policy": {
    "bindings": [
      {
        "account_ids": [
          "2GzbST9DaEPsNcDTaW30GWnfZyw",
          "2GzbTHf7FfMyGv2F71FWwGRzKWb"
        ],
        "role_id": "owner"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "projects.admin"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "accounts.admin"
      }
    ]
  },
  "resource_hierarchy": [
    {
      "id": "elevendata",
      "type": "project"
    }
  ],
  "resource_title": "string"
}

Properties

Name Type Required Restrictions Description
etag string(byte) false none none
policy mycujoo.auth.v1.Policy false none Authorization policy.
resource_hierarchy [mycujoo.auth.v1.Resource] false none [Resource object reference that is used to represent objects in the IAM system.]
resource_title string false none none

mycujoo.organizations.v1.GetOrganizationResponse

{
  "organization": {
    "content_delivery_settings": {
      "embed_domains": [
        "string"
      ],
      "public_keys": [
        "string"
      ]
    },
    "display_name": "string",
    "id": "string",
    "is_enabled": true,
    "owner_id": "string"
  }
}

Properties

Name Type Required Restrictions Description
organization mycujoo.organizations.v1.Organization false none none

mycujoo.organizations.v1.Organization

{
  "content_delivery_settings": {
    "embed_domains": [
      "string"
    ],
    "public_keys": [
      "string"
    ]
  },
  "display_name": "string",
  "id": "string",
  "is_enabled": true,
  "owner_id": "string"
}

Properties

Name Type Required Restrictions Description
content_delivery_settings mycujoo.organizations.v1.Organization.ContentDeliverySettings false none none
display_name string false none none
id string false none Human readable, slug-compatible short identifier, like "cbf" or "live-mode"
Must be unique across organizations and projects IDs.
is_enabled boolean false none is_enabled is a flag that indicates whether the organization is enabled.
some services are not available for disabled organizations.
owner_id string false none none

mycujoo.organizations.v1.Organization.ContentDeliverySettings

{
  "embed_domains": [
    "string"
  ],
  "public_keys": [
    "string"
  ]
}

Settings relevant for the SDK clients

Properties

Name Type Required Restrictions Description
embed_domains [string] false none none
public_keys [string] false none none

mycujoo.organizations.v1.OrganizationUpdateFields

{
  "display_name": "string",
  "embed_domains": [
    "string"
  ]
}

Properties

Name Type Required Restrictions Description
display_name string false none none
embed_domains [string] false none none

mycujoo.organizations.v1.SetIamPolicyResponse

{}

When there is no error result is empty

Properties

None

mycujoo.organizations.v1.TestIamPermissionsRequest

{
  "permissions": [
    "projects.create",
    "projects.update",
    "projects.delete"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
}

Properties

Name Type Required Restrictions Description
permissions [string] true none none
resource mycujoo.auth.v1.Resource true none Resource object reference that is used to represent objects in the IAM system.

mycujoo.organizations.v1.TestIamPermissionsResponse

{
  "permissions": [
    "projects.create",
    "projects.update"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
}

Properties

Name Type Required Restrictions Description
permissions [string] false none none
resource mycujoo.auth.v1.Resource false none Resource object reference that is used to represent objects in the IAM system.

mycujoo.organizations.v1.UpdateOrganizationResponse

{}

Properties

None

mycujoo.packages.v1beta1.BatchGetPackagesRequest

{
  "ids": [
    "string"
  ]
}

Properties

Name Type Required Restrictions Description
ids [string] true none none

mycujoo.packages.v1beta1.BatchGetPackagesResponse

{
  "packages": [
    {
      "concurrency_limit": 0,
      "create_time": "2019-08-24T14:15:22Z",
      "description": "string",
      "end_time": "2019-08-24T14:15:22Z",
      "id": "string",
      "metadata_references": [
        {
          "key": "string",
          "value": "string"
        }
      ],
      "name": "string",
      "start_time": "2019-08-24T14:15:22Z"
    }
  ]
}

Properties

Name Type Required Restrictions Description
packages [mycujoo.packages.v1beta1.Package] false none [Package is a access protected one or many contents that user can pay for.]

mycujoo.packages.v1beta1.CreatePackageRequest

{
  "concurrency_limit": 0,
  "description": "string",
  "end_time": "2019-08-24T14:15:22Z",
  "metadata_references": [
    {
      "key": "string",
      "value": "string"
    }
  ],
  "name": "string",
  "start_time": "2019-08-24T14:15:22Z"
}

Properties

Name Type Required Restrictions Description
concurrency_limit integer(int32) false none The number of video streams that a specific user can watch at any given time.
Defaults to 0 which means that there is no limit.
description string false none Description of the package that holds more detailed information about what
package provides.
end_time string(date-time) false none none
metadata_references [mycujoo.packages.v1beta1.Package.MetadataReference] true none [Event's metadata selector pointing to what content belongs to the package.]
name string true none Full name of the package that can be used as a page title.
start_time string(date-time) false none none

mycujoo.packages.v1beta1.CreatePackageResponse

{
  "package": {
    "concurrency_limit": 0,
    "create_time": "2019-08-24T14:15:22Z",
    "description": "string",
    "end_time": "2019-08-24T14:15:22Z",
    "id": "string",
    "metadata_references": [
      {
        "key": "string",
        "value": "string"
      }
    ],
    "name": "string",
    "start_time": "2019-08-24T14:15:22Z"
  }
}

Properties

Name Type Required Restrictions Description
package mycujoo.packages.v1beta1.Package false none Package is a access protected one or many contents that user can pay for.

mycujoo.packages.v1beta1.DeletePackageResponse

{}

Properties

None

mycujoo.packages.v1beta1.GetPackageIamPolicyResponse

{
  "etag": "string",
  "policy": {
    "bindings": [
      {
        "account_ids": [
          "2GzbST9DaEPsNcDTaW30GWnfZyw",
          "2GzbTHf7FfMyGv2F71FWwGRzKWb"
        ],
        "role_id": "owner"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "projects.admin"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "accounts.admin"
      }
    ]
  },
  "resource_hierarchy": [
    {
      "id": "elevendata",
      "type": "project"
    }
  ],
  "resource_title": "string"
}

Properties

Name Type Required Restrictions Description
etag string(byte) false none none
policy mycujoo.auth.v1.Policy false none Authorization policy.
resource_hierarchy [mycujoo.auth.v1.Resource] false none [Resource object reference that is used to represent objects in the IAM system.]
resource_title string false none none

mycujoo.packages.v1beta1.GetPackageResponse

{
  "package": {
    "concurrency_limit": 0,
    "create_time": "2019-08-24T14:15:22Z",
    "description": "string",
    "end_time": "2019-08-24T14:15:22Z",
    "id": "string",
    "metadata_references": [
      {
        "key": "string",
        "value": "string"
      }
    ],
    "name": "string",
    "start_time": "2019-08-24T14:15:22Z"
  }
}

Properties

Name Type Required Restrictions Description
package mycujoo.packages.v1beta1.Package false none Package is a access protected one or many contents that user can pay for.

mycujoo.packages.v1beta1.ListPackagesRequest.Include

"INCLUDE_UNSPECIFIED"

An enum value that indicates additional data to be included in the response

Properties

Name Type Required Restrictions Description
An enum value that indicates additional data to be included in the response string false none - INCLUDE_TOTAL_SIZE: When included, response will contain metadata about total number of
available results irrespective of pagination

Enumerated Values

Property Value
An enum value that indicates additional data to be included in the response INCLUDE_UNSPECIFIED
An enum value that indicates additional data to be included in the response INCLUDE_TOTAL_SIZE

mycujoo.packages.v1beta1.ListPackagesRequest.Order

"ORDER_UNSPECIFIED"

An enum value that indicates results order in the response

Properties

Name Type Required Restrictions Description
An enum value that indicates results order in the response string false none - ORDER_UNSPECIFIED: When order is unspecified it defaults to create time descending
- ORDER_CREATE_TIME_ASC: Results sorted by time of creation ascending
- ORDER_CREATE_TIME_DESC: Results sorted by time of creation descending

Enumerated Values

Property Value
An enum value that indicates results order in the response ORDER_UNSPECIFIED
An enum value that indicates results order in the response ORDER_CREATE_TIME_ASC
An enum value that indicates results order in the response ORDER_CREATE_TIME_DESC

mycujoo.packages.v1beta1.ListPackagesResponse

{
  "next_page_token": "string",
  "packages": [
    {
      "concurrency_limit": 0,
      "create_time": "2019-08-24T14:15:22Z",
      "description": "string",
      "end_time": "2019-08-24T14:15:22Z",
      "id": "string",
      "metadata_references": [
        {
          "key": "string",
          "value": "string"
        }
      ],
      "name": "string",
      "start_time": "2019-08-24T14:15:22Z"
    }
  ],
  "total_size": 0
}

Properties

Name Type Required Restrictions Description
next_page_token string false none none
packages [mycujoo.packages.v1beta1.Package] false none [Package is a access protected one or many contents that user can pay for.]
total_size integer(int32) false none The total amount of items in the list irrespective of pagination.
Will be present only when request 'include' field ask for it.

mycujoo.packages.v1beta1.Package

{
  "concurrency_limit": 0,
  "create_time": "2019-08-24T14:15:22Z",
  "description": "string",
  "end_time": "2019-08-24T14:15:22Z",
  "id": "string",
  "metadata_references": [
    {
      "key": "string",
      "value": "string"
    }
  ],
  "name": "string",
  "start_time": "2019-08-24T14:15:22Z"
}

Package is a access protected one or many contents that user can pay for.

Properties

Name Type Required Restrictions Description
concurrency_limit integer(int32) false none The number of video streams that a specific user can watch at any given time.
Defaults to 0 which means that there is no limit.
create_time string(date-time) true none Time of creation. Cannot be set.
description string false none Description of the package that holds more detailed information about what
package provides.
end_time string(date-time) false none none
id string false read-only Auto generated unique ID of the package. Cannot be set.
metadata_references [mycujoo.packages.v1beta1.Package.MetadataReference] true none [Event's metadata selector pointing to what content belongs to the package.]
name string true none Full name of the package that can be used as a page title.
start_time string(date-time) false none none

mycujoo.packages.v1beta1.Package.MetadataReference

{
  "key": "string",
  "value": "string"
}

Event's metadata selector pointing to what content belongs to the package.

Properties

Name Type Required Restrictions Description
key string true none none
value string true none none

mycujoo.packages.v1beta1.SetPackageIamPolicyResponse

{}

Properties

None

mycujoo.packages.v1beta1.TestIamPermissionsRequest

{
  "permissions": [
    "projects.create",
    "projects.update",
    "projects.delete"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
}

Properties

Name Type Required Restrictions Description
permissions [string] true none none
resource mycujoo.auth.v1.Resource true none Resource object reference that is used to represent objects in the IAM system.

mycujoo.packages.v1beta1.TestIamPermissionsResponse

{
  "permissions": [
    "projects.create",
    "projects.update"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
}

Properties

Name Type Required Restrictions Description
permissions [string] false none none
resource mycujoo.auth.v1.Resource false none Resource object reference that is used to represent objects in the IAM system.

mycujoo.packages.v1beta1.UpdatePackageRequest.UpdateFields

{
  "concurrency_limit": 0,
  "description": "string",
  "end_time": "2019-08-24T14:15:22Z",
  "metadata_references": [
    {
      "key": "string",
      "value": "string"
    }
  ],
  "name": "string",
  "start_time": "2019-08-24T14:15:22Z"
}

Properties

Name Type Required Restrictions Description
concurrency_limit integer(int32) false none The number of video streams that a specific user can watch at any given time.
Defaults to 0 which means that there is no limit.
description string false none Description of the package that holds more detailed information about
what package provides.
end_time string(date-time) false none none
metadata_references [mycujoo.packages.v1beta1.Package.MetadataReference] false none [Event's metadata selector pointing to what content belongs to the package.]
name string false none Full name of the package that can be used as a page title.
start_time string(date-time) false none none

mycujoo.packages.v1beta1.UpdatePackageResponse

{
  "package": {
    "concurrency_limit": 0,
    "create_time": "2019-08-24T14:15:22Z",
    "description": "string",
    "end_time": "2019-08-24T14:15:22Z",
    "id": "string",
    "metadata_references": [
      {
        "key": "string",
        "value": "string"
      }
    ],
    "name": "string",
    "start_time": "2019-08-24T14:15:22Z"
  }
}

Properties

Name Type Required Restrictions Description
package mycujoo.packages.v1beta1.Package false none Package is a access protected one or many contents that user can pay for.

mycujoo.playerconfig.v1beta1.GetPlayerConfigResponse

{
  "player_config": {
    "ima_ad_unit": "string"
  }
}

Properties

Name Type Required Restrictions Description
player_config mycujoo.playerconfig.v1beta1.PlayerConfig false none none

mycujoo.playerconfig.v1beta1.PlayerConfig

{
  "ima_ad_unit": "string"
}

Configuration for a player

Properties

Name Type Required Restrictions Description
ima_ad_unit string false none IMA ad unit will be used in the ad tag for preroll, midroll and postroll advertisements in the video player.

mycujoo.playerconfig.v1beta1.UpdatePlayerConfigRequest

{
  "ima_ad_unit": "string"
}

Properties

Name Type Required Restrictions Description
ima_ad_unit string false none IMA ad unit will be used in the ad tag for preroll, midroll and postroll advertisements in the video player.

mycujoo.playerconfig.v1beta1.UpdatePlayerConfigResponse

{}

Properties

None

mycujoo.projects.v1.ContentVisibility

"CONTENT_VISIBILITY_UNSPECIFIED"

Different visibility settings for the content

Properties

Name Type Required Restrictions Description
Different visibility settings for the content string false none none

Enumerated Values

Property Value
Different visibility settings for the content CONTENT_VISIBILITY_UNSPECIFIED
Different visibility settings for the content CONTENT_VISIBILITY_PUBLISHED
Different visibility settings for the content CONTENT_VISIBILITY_UNLISTED
Different visibility settings for the content CONTENT_VISIBILITY_HIDDEN

mycujoo.projects.v1.CreateProjectRequest

{
  "display_name": "string",
  "project_id": "string"
}

Properties

Name Type Required Restrictions Description
display_name string false none User friendly name of the project.
project_id string true none The project ID.

mycujoo.projects.v1.CreateProjectResponse

{
  "project": {
    "content_visibility": "CONTENT_VISIBILITY_UNSPECIFIED",
    "display_name": "string",
    "id": "string",
    "is_disabled": true
  }
}

Properties

Name Type Required Restrictions Description
project mycujoo.projects.v1.Project false none none

mycujoo.projects.v1.DeleteProjectResponse

{}

Properties

None

mycujoo.projects.v1.GetIamPolicyResponse

{
  "etag": "string",
  "policy": {
    "bindings": [
      {
        "account_ids": [
          "2GzbST9DaEPsNcDTaW30GWnfZyw",
          "2GzbTHf7FfMyGv2F71FWwGRzKWb"
        ],
        "role_id": "owner"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "projects.admin"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "accounts.admin"
      }
    ]
  },
  "resource_hierarchy": [
    {
      "id": "elevendata",
      "type": "project"
    }
  ],
  "resource_title": "string"
}

Properties

Name Type Required Restrictions Description
etag string(byte) false none none
policy mycujoo.auth.v1.Policy false none Authorization policy.
resource_hierarchy [mycujoo.auth.v1.Resource] false none [Resource object reference that is used to represent objects in the IAM system.]
resource_title string false none none

mycujoo.projects.v1.GetProjectResponse

{
  "project": {
    "content_visibility": "CONTENT_VISIBILITY_UNSPECIFIED",
    "display_name": "string",
    "id": "string",
    "is_disabled": true
  }
}

Properties

Name Type Required Restrictions Description
project mycujoo.projects.v1.Project false none none

mycujoo.projects.v1.ListProjectsResponse

{
  "next_page_token": "string",
  "projects": [
    {
      "content_visibility": "CONTENT_VISIBILITY_UNSPECIFIED",
      "display_name": "string",
      "id": "string",
      "is_disabled": true
    }
  ]
}

Properties

Name Type Required Restrictions Description
next_page_token string false none none
projects [mycujoo.projects.v1.Project] false none none

mycujoo.projects.v1.Project

{
  "content_visibility": "CONTENT_VISIBILITY_UNSPECIFIED",
  "display_name": "string",
  "id": "string",
  "is_disabled": true
}

Properties

Name Type Required Restrictions Description
content_visibility mycujoo.projects.v1.ContentVisibility false none none
display_name string false none User friendly name of the project.
id string false none The project ID.
is_disabled boolean false none none

mycujoo.projects.v1.SetIamPolicyResponse

{}

When there is no error result is empty

Properties

None

mycujoo.projects.v1.TestIamPermissionsRequest

{
  "permissions": [
    "projects.create",
    "projects.update",
    "projects.delete"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
}

Properties

Name Type Required Restrictions Description
permissions [string] true none none
resource mycujoo.auth.v1.Resource true none Resource object reference that is used to represent objects in the IAM system.

mycujoo.projects.v1.TestIamPermissionsResponse

{
  "permissions": [
    "projects.create",
    "projects.update"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
}

Properties

Name Type Required Restrictions Description
permissions [string] false none none
resource mycujoo.auth.v1.Resource false none Resource object reference that is used to represent objects in the IAM system.

mycujoo.projects.v1.UpdateProjectResponse

{
  "project": {
    "content_visibility": "CONTENT_VISIBILITY_UNSPECIFIED",
    "display_name": "string",
    "id": "string",
    "is_disabled": true
  }
}

Properties

Name Type Required Restrictions Description
project mycujoo.projects.v1.Project false none none

mycujoo.ratelimit.v1.Entry

{
  "key": "string",
  "value": "string"
}

Properties

Name Type Required Restrictions Description
key string false none Example keys: org_id, account_id, email, client_ip, method, ...
value string false none Value associated with the key. For example esgp for the key org_id.
Or [email protected] for the key email.

mycujoo.ratelimit.v1.RateLimit

{
  "requests_per_unit": 0,
  "unit": "UNIT_UNSPECIFIED"
}

Properties

Name Type Required Restrictions Description
requests_per_unit integer(int32) false none Maximum number of requests allowed per unit.
unit mycujoo.ratelimit.v1.Unit false none Identifies the unit of time for rate limit.

- UNIT_UNSPECIFIED: The time unit is not known.
- UNIT_SECOND: The time unit representing a second.
- UNIT_MINUTE: The time unit representing a minute.
- UNIT_HOUR: The time unit representing an hour.
- UNIT_DAY: The time unit representing a day.
- UNIT_MONTH: The time unit representing a month.

mycujoo.ratelimit.v1.RateLimitConfiguration

{
  "entries": [
    {
      "key": "string",
      "value": "string"
    }
  ],
  "limit": {
    "requests_per_unit": 0,
    "unit": "UNIT_UNSPECIFIED"
  },
  "name": "string",
  "shadow_mode": true
}

Properties

Name Type Required Restrictions Description
entries [mycujoo.ratelimit.v1.Entry] false none none
limit mycujoo.ratelimit.v1.RateLimit false none none
name string false none Name of this configuration.
shadow_mode boolean false none Shadow mode: if true, the rate-limit will be checked, but the request will not be blocked.
That can be useful to test the rate-limit configuration without actually blocking requests.

mycujoo.ratelimit.v1.ShouldRateLimitResponse

{
  "status": "STATUS_UNSPECIFIED"
}

Properties

Name Type Required Restrictions Description
status mycujoo.ratelimit.v1.ShouldRateLimitResponse.Status false none - STATUS_UNSPECIFIED: The response code is not known.
- STATUS_OK: The response code to notify that the number of requests are under limit.
- STATUS_OVER_LIMIT: The response code to notify that the number of requests are over limit.

mycujoo.ratelimit.v1.ShouldRateLimitResponse.Status

"STATUS_UNSPECIFIED"

Properties

Name Type Required Restrictions Description
anonymous string false none - STATUS_UNSPECIFIED: The response code is not known.
- STATUS_OK: The response code to notify that the number of requests are under limit.
- STATUS_OVER_LIMIT: The response code to notify that the number of requests are over limit.

Enumerated Values

Property Value
anonymous STATUS_UNSPECIFIED
anonymous STATUS_OK
anonymous STATUS_OVER_LIMIT

mycujoo.ratelimit.v1.Unit

"UNIT_UNSPECIFIED"

Identifies the unit of time for rate limit.

Properties

Name Type Required Restrictions Description
anonymous string false none Identifies the unit of time for rate limit.

- UNIT_UNSPECIFIED: The time unit is not known.
- UNIT_SECOND: The time unit representing a second.
- UNIT_MINUTE: The time unit representing a minute.
- UNIT_HOUR: The time unit representing an hour.
- UNIT_DAY: The time unit representing a day.
- UNIT_MONTH: The time unit representing a month.

Enumerated Values

Property Value
anonymous UNIT_UNSPECIFIED
anonymous UNIT_SECOND
anonymous UNIT_MINUTE
anonymous UNIT_HOUR
anonymous UNIT_DAY
anonymous UNIT_MONTH

mycujoo.secure_link.v1.GetSecureLinkResponse

{
  "create_time": "2019-08-24T14:15:22Z",
  "id": "string",
  "is_enabled": true,
  "public_key": "string",
  "resource_id": "string",
  "resource_type": "string",
  "update_time": "2019-08-24T14:15:22Z"
}

Properties

Name Type Required Restrictions Description
create_time string(date-time) false none none
id string false none none
is_enabled boolean false none none
public_key string false none none
resource_id string false none none
resource_type string false none none
update_time string(date-time) false none none

mycujoo.secure_link.v1.RotateKeyResponse

{
  "create_time": "2019-08-24T14:15:22Z",
  "id": "string",
  "is_enabled": true,
  "public_key": "string",
  "resource_id": "string",
  "resource_type": "string",
  "update_time": "2019-08-24T14:15:22Z"
}

Properties

Name Type Required Restrictions Description
create_time string(date-time) false none none
id string false none none
is_enabled boolean false none none
public_key string false none none
resource_id string false none none
resource_type string false none none
update_time string(date-time) false none none

mycujoo.secure_link.v1.UpsertSecureLinkResponse

{
  "create_time": "2019-08-24T14:15:22Z",
  "id": "string",
  "is_enabled": true,
  "public_key": "string",
  "resource_id": "string",
  "resource_type": "string",
  "update_time": "2019-08-24T14:15:22Z"
}

Properties

Name Type Required Restrictions Description
create_time string(date-time) false none none
id string false none none
is_enabled boolean false none none
public_key string false none none
resource_id string false none none
resource_type string false none none
update_time string(date-time) false none none

mycujoo.streaming.v1.Activity

{
  "timestamp": "2019-08-24T14:15:22Z",
  "type": "string"
}

Properties

Name Type Required Restrictions Description
timestamp string(date-time) false none Returned by the API, cannot be set
Timestamp of when the activity was happened.
type string false none none

mycujoo.streaming.v1.AudioStats

{
  "bit_rate": 0,
  "channel_layout": "string",
  "channels": 0,
  "codec": "string",
  "codec_long_name": "string",
  "codec_type": "string",
  "index": 0,
  "profile": "string",
  "sample_fmt": "string",
  "sample_rate": 0
}

Properties

Name Type Required Restrictions Description
bit_rate integer(int32) false none none
channel_layout string false none none
channels integer(int32) false none none
codec string false none none
codec_long_name string false none none
codec_type string false none none
index integer(int32) false none none
profile string false none none
sample_fmt string false none none
sample_rate integer(int32) false none none

mycujoo.streaming.v1.BatchGetStreamsResponse

{
  "streams": [
    {
      "config": {
        "auto_enable_vpn_blocking": true,
        "default": true,
        "dvr_settings": {
          "automatic_vod": true,
          "enabled": true,
          "stop_transcoding_full_dvr": true,
          "window_size": 1
        },
        "enable_pull_endpoint": true,
        "enable_raw_pull_endpoint": true,
        "id": "string",
        "is_system": true,
        "name": "string",
        "recording_settings": {
          "autostart": true,
          "enabled": true,
          "record_during_transcoding": true
        },
        "scene_settings": {
          "is_enabled": true,
          "key_color": "SCENE_KEY_COLOR_UNSPECIFIED",
          "scene_id": "string"
        },
        "secure_link": true,
        "transcoding_settings": {
          "audio_bitrate": 32,
          "autostart": true,
          "drm": {
            "fairplay": true,
            "playready": true,
            "widevine": true
          },
          "enabled": true,
          "follow_source_fps": true,
          "gop": 25,
          "interlacing_filter_mode": "INTERLACING_FILTER_MODE_UNSPECIFIED",
          "key_frame_interval": 1,
          "level": 0.1,
          "llhls_settings": {
            "is_enabled": true,
            "part_size": 250,
            "segment_count": 10,
            "segment_size": 1
          },
          "low_latency": true,
          "profile": "TRANSCODING_PROFILE_UNSPECIFIED",
          "segment_size": 1,
          "tracking_pixel": true,
          "use_cdn": true,
          "video_representation_ids": [
            "string"
          ],
          "watermark": {
            "enabled": true,
            "url": "https://images.mls.mycujoo.tv/example.png"
          }
        }
      },
      "config_id": "string",
      "connection_time_seconds": 0,
      "endpoint": "string",
      "external_video_source": "string",
      "id": "string",
      "incoming_feed": {
        "device": {
          "flash_version": "string",
          "name": "string"
        },
        "http_flv_endpoint": "string",
        "is_active": true,
        "protocol": "INGEST_PROTOCOL_UNSPECIFIED",
        "session_id": "string"
      },
      "incoming_feed_flv": "string",
      "is_active": true,
      "is_enabled": true,
      "is_public": true,
      "is_published": true,
      "key": "string",
      "media_source_id": "string",
      "playlists": [
        {
          "id": "string",
          "is_enabled": true,
          "is_transcoded": true,
          "is_updating": true,
          "is_vod": true,
          "protocol": "PROTOCOL_UNSPECIFIED",
          "type": "TYPE_UNSPECIFIED",
          "url": "string"
        }
      ],
      "project_id": "string",
      "pull_endpoints": [
        {
          "config_id": "string",
          "endpoint": "string",
          "id": "string",
          "is_transcoded": true,
          "protocol": "PROTOCOL_UNSPECIFIED",
          "scene_settings": {
            "is_enabled": true,
            "key_color": "SCENE_KEY_COLOR_UNSPECIFIED",
            "scene_id": "string",
            "variables": {
              "property1": "string",
              "property2": "string"
            }
          },
          "video_representation_id": "string"
        }
      ],
      "pull_ingest_id": "string",
      "push_endpoints": [
        {
          "config_id": "qurnvkspnrjqk",
          "endpoint": "rtmp://something/live",
          "protocol": "RTMP",
          "stream_id": "abcdefghi"
        }
      ],
      "push_ingest_endpoints": [
        {
          "endpoint": "string",
          "in_use": true,
          "protocol": "PUSH_INGEST_PROTOCOL_UNSPECIFIED",
          "region": "REGION_UNSPECIFIED",
          "secure_endpoint": "string",
          "secure_uri": "string",
          "support_tls": true,
          "uri": "string"
        }
      ],
      "region": "REGION_UNSPECIFIED",
      "stats": {
        "audio_bit_rate": 0,
        "audios": [
          {
            "bit_rate": 0,
            "channel_layout": "string",
            "channels": 0,
            "codec": "string",
            "codec_long_name": "string",
            "codec_type": "string",
            "index": 0,
            "profile": "string",
            "sample_fmt": "string",
            "sample_rate": 0
          }
        ],
        "connection_count": 0,
        "sample": {
          "audio_bit_rate": 0,
          "video_bit_rate": 0,
          "video_frame_rate": 0.1,
          "video_key_frame_consistent": true,
          "video_key_frame_interval": 0.1,
          "video_resolution": 0
        },
        "video_bit_rate": 0,
        "video_frame_rate": 0.1,
        "video_key_frame_consistent": true,
        "video_key_frame_interval": 0.1,
        "video_resolution": 0,
        "videos": [
          {
            "bit_rate": 0,
            "codec": "string",
            "codec_long_name": "string",
            "codec_type": "string",
            "frame_rate": 0.1,
            "height": 0,
            "index": 0,
            "level": 0,
            "pix_fmt": "string",
            "profile": "string",
            "resolution": 0,
            "start_pts": 0,
            "width": 0
          }
        ]
      },
      "title": "string",
      "transcoding_state": "STATE_UNSPECIFIED",
      "transcoding_time_seconds": 0,
      "type": "TYPE_UNSPECIFIED",
      "upload_id": "string",
      "vod_asset_id": "string"
    }
  ]
}

Properties

Name Type Required Restrictions Description
streams [mycujoo.streaming.v1.Stream] false none none

mycujoo.streaming.v1.ClipDownload

{
  "full_url": "string",
  "size": "string"
}

Properties

Name Type Required Restrictions Description
full_url string false none none
size string(int64) false none none

mycujoo.streaming.v1.ClipRequest

{
  "duration": 0,
  "offset": 0,
  "position": 0,
  "request_download": true,
  "stream_id": "string",
  "title": "string"
}

Properties

Name Type Required Restrictions Description
duration integer(int32) false none none
offset integer(int32) false none none
position integer(int32) false none none
request_download boolean false none Indicates whether or not to request a download link for the clip.
stream_id string false none none
title string false none Title for the clip. If not set, a random name will be chosen.

mycujoo.streaming.v1.ClipResponse

{
  "actual_duration": 0,
  "actual_position": 0,
  "created_time": "2019-08-24T14:15:22Z",
  "download": {
    "full_url": "string",
    "size": "string"
  },
  "download_state": "DOWNLOAD_STATE_UNSPECIFIED",
  "full_url": "string",
  "id": "string",
  "state": "CLIP_STATE_UNSPECIFIED",
  "stream_id": "string",
  "title": "string",
  "updated_time": "2019-08-24T14:15:22Z"
}

Properties

Name Type Required Restrictions Description
actual_duration integer(int32) false none Returned by the API, cannot be set
The actual (calculated) duration of the clip.
It can differ from the requested duration because we may include a few extras seconds in the clip due to the segment size.
actual_position integer(int32) false none Returned by the API, cannot be set
The actual position of the clip.
If position -1 (live) is chosen in the request, this will be the start in seconds from the stream where the clip begins.
created_time string(date-time) false none none
download mycujoo.streaming.v1.ClipDownload false none none
download_state mycujoo.streaming.v1.DownloadState false none none
full_url string false none none
id string false none none
state mycujoo.streaming.v1.ClipState false none none
stream_id string false none none
title string false none Returned by the API, cannot be set
Title for the clip. If not set, a random name will be chosen.
updated_time string(date-time) false none Returned by the API, cannot be set
Timestamp of when the clip was updated. If it was never updated, it will be the same as created_time.

mycujoo.streaming.v1.ClipState

"CLIP_STATE_UNSPECIFIED"

Properties

Name Type Required Restrictions Description
anonymous string false none none

Enumerated Values

Property Value
anonymous CLIP_STATE_UNSPECIFIED
anonymous CLIP_STATE_READY
anonymous CLIP_STATE_SCHEDULED
anonymous CLIP_STATE_FAILED

mycujoo.streaming.v1.ClipTestIamPermissionsRequest

{
  "permissions": [
    "projects.create",
    "projects.update",
    "projects.delete"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
}

Properties

Name Type Required Restrictions Description
permissions [string] true none none
resource mycujoo.auth.v1.Resource true none Resource object reference that is used to represent objects in the IAM system.

mycujoo.streaming.v1.ClipTestIamPermissionsResponse

{
  "permissions": [
    "projects.create",
    "projects.update"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
}

Properties

Name Type Required Restrictions Description
permissions [string] false none none
resource mycujoo.auth.v1.Resource false none Resource object reference that is used to represent objects in the IAM system.

mycujoo.streaming.v1.Concat

{
  "destination_asset_id": "string",
  "id": "string",
  "state": "STATE_UNSPECIFIED",
  "status": "STATUS_UNSPECIFIED",
  "stream_id": "string"
}

Properties

Name Type Required Restrictions Description
destination_asset_id string false none none
id string false none none
state mycujoo.streaming.v1.Concat.State false none none
status mycujoo.streaming.v1.Concat.Status false none none
stream_id string false none none

mycujoo.streaming.v1.Concat.State

"STATE_UNSPECIFIED"

Properties

Name Type Required Restrictions Description
anonymous string false none none

Enumerated Values

Property Value
anonymous STATE_UNSPECIFIED
anonymous STATE_ACTIVE
anonymous STATE_INACTIVE
anonymous STATE_SCHEDULED

mycujoo.streaming.v1.Concat.Status

"STATUS_UNSPECIFIED"

Properties

Name Type Required Restrictions Description
anonymous string false none none

Enumerated Values

Property Value
anonymous STATUS_UNSPECIFIED
anonymous STATUS_COMPLETED
anonymous STATUS_FAILED
anonymous STATUS_TERMINATED

mycujoo.streaming.v1.CreateClipResponse

{
  "clip": {
    "actual_duration": 0,
    "actual_position": 0,
    "created_time": "2019-08-24T14:15:22Z",
    "download": {
      "full_url": "string",
      "size": "string"
    },
    "download_state": "DOWNLOAD_STATE_UNSPECIFIED",
    "full_url": "string",
    "id": "string",
    "state": "CLIP_STATE_UNSPECIFIED",
    "stream_id": "string",
    "title": "string",
    "updated_time": "2019-08-24T14:15:22Z"
  }
}

Properties

Name Type Required Restrictions Description
clip mycujoo.streaming.v1.ClipResponse false none none

mycujoo.streaming.v1.CreateConfigResponse

{
  "stream_config": {
    "auto_enable_vpn_blocking": true,
    "default": true,
    "dvr_settings": {
      "automatic_vod": true,
      "enabled": true,
      "stop_transcoding_full_dvr": true,
      "window_size": 1
    },
    "enable_pull_endpoint": true,
    "enable_raw_pull_endpoint": true,
    "id": "string",
    "is_system": true,
    "name": "string",
    "recording_settings": {
      "autostart": true,
      "enabled": true,
      "record_during_transcoding": true
    },
    "scene_settings": {
      "is_enabled": true,
      "key_color": "SCENE_KEY_COLOR_UNSPECIFIED",
      "scene_id": "string"
    },
    "secure_link": true,
    "transcoding_settings": {
      "audio_bitrate": 32,
      "autostart": true,
      "drm": {
        "fairplay": true,
        "playready": true,
        "widevine": true
      },
      "enabled": true,
      "follow_source_fps": true,
      "gop": 25,
      "interlacing_filter_mode": "INTERLACING_FILTER_MODE_UNSPECIFIED",
      "key_frame_interval": 1,
      "level": 0.1,
      "llhls_settings": {
        "is_enabled": true,
        "part_size": 250,
        "segment_count": 10,
        "segment_size": 1
      },
      "low_latency": true,
      "profile": "TRANSCODING_PROFILE_UNSPECIFIED",
      "segment_size": 1,
      "tracking_pixel": true,
      "use_cdn": true,
      "video_representation_ids": [
        "string"
      ],
      "watermark": {
        "enabled": true,
        "url": "https://images.mls.mycujoo.tv/example.png"
      }
    }
  }
}

Properties

Name Type Required Restrictions Description
stream_config mycujoo.streaming.v1.StreamConfig false none none

mycujoo.streaming.v1.CreatePullIngestRequest

{
  "endpoint": "string",
  "name": "string",
  "protocol": "PULL_INGEST_PROTOCOL_UNSPECIFIED"
}

Properties

Name Type Required Restrictions Description
endpoint string false none none
name string false none none
protocol mycujoo.streaming.v1.PullIngestProtocol false none - PULL_INGEST_PROTOCOL_RTMP: RTMPS is simply RTMP with an added layer of security
for protected streaming. So they are the same protocol

mycujoo.streaming.v1.CreatePullIngestResponse

{
  "pull_ingest": {
    "endpoint": "string",
    "id": "string",
    "name": "string",
    "protocol": "PULL_INGEST_PROTOCOL_UNSPECIFIED",
    "streams": [
      {
        "status": "PULL_INGEST_STATUS_UNSPECIFIED",
        "stream_id": "string"
      }
    ]
  }
}

Properties

Name Type Required Restrictions Description
pull_ingest mycujoo.streaming.v1.PullIngestEndpoint false none none

mycujoo.streaming.v1.CreatePushEndpointRequest

{
  "config_id": "qurnvkspnrjqk",
  "endpoint": "rtmp://something/live",
  "protocol": "RTMP",
  "stream_id": "abcdefghi"
}

Properties

Name Type Required Restrictions Description
added_latency_seconds integer(int32) false none none
config_id string false none none
endpoint string false none none
name string false none none
protocol mycujoo.streaming.v1.CreatePushEndpointRequest.Protocol false none none
scene_settings mycujoo.streaming.v1.EndpointSceneSettings false none none
stream_id string false none none
video_representation_id string false none Video representation ID associated with this endpoint.

mycujoo.streaming.v1.CreatePushEndpointRequest.Protocol

"PROTOCOL_UNSPECIFIED"

Properties

Name Type Required Restrictions Description
anonymous string false none none

Enumerated Values

Property Value
anonymous PROTOCOL_UNSPECIFIED
anonymous PROTOCOL_RTMP
anonymous PROTOCOL_HLS
anonymous PROTOCOL_SRT

mycujoo.streaming.v1.CreatePushEndpointResponse

{
  "endpoint": {
    "config_id": "qurnvkspnrjqk",
    "endpoint": "rtmp://something/live",
    "protocol": "RTMP",
    "stream_id": "abcdefghi"
  }
}

Properties

Name Type Required Restrictions Description
endpoint mycujoo.streaming.v1.StreamPushEndpoint false none none

mycujoo.streaming.v1.CreateStreamResponse

{
  "stream": {
    "config": {
      "auto_enable_vpn_blocking": true,
      "default": true,
      "dvr_settings": {
        "automatic_vod": true,
        "enabled": true,
        "stop_transcoding_full_dvr": true,
        "window_size": 1
      },
      "enable_pull_endpoint": true,
      "enable_raw_pull_endpoint": true,
      "id": "string",
      "is_system": true,
      "name": "string",
      "recording_settings": {
        "autostart": true,
        "enabled": true,
        "record_during_transcoding": true
      },
      "scene_settings": {
        "is_enabled": true,
        "key_color": "SCENE_KEY_COLOR_UNSPECIFIED",
        "scene_id": "string"
      },
      "secure_link": true,
      "transcoding_settings": {
        "audio_bitrate": 32,
        "autostart": true,
        "drm": {
          "fairplay": true,
          "playready": true,
          "widevine": true
        },
        "enabled": true,
        "follow_source_fps": true,
        "gop": 25,
        "interlacing_filter_mode": "INTERLACING_FILTER_MODE_UNSPECIFIED",
        "key_frame_interval": 1,
        "level": 0.1,
        "llhls_settings": {
          "is_enabled": true,
          "part_size": 250,
          "segment_count": 10,
          "segment_size": 1
        },
        "low_latency": true,
        "profile": "TRANSCODING_PROFILE_UNSPECIFIED",
        "segment_size": 1,
        "tracking_pixel": true,
        "use_cdn": true,
        "video_representation_ids": [
          "string"
        ],
        "watermark": {
          "enabled": true,
          "url": "https://images.mls.mycujoo.tv/example.png"
        }
      }
    },
    "config_id": "string",
    "connection_time_seconds": 0,
    "endpoint": "string",
    "external_video_source": "string",
    "id": "string",
    "incoming_feed": {
      "device": {
        "flash_version": "string",
        "name": "string"
      },
      "http_flv_endpoint": "string",
      "is_active": true,
      "protocol": "INGEST_PROTOCOL_UNSPECIFIED",
      "session_id": "string"
    },
    "incoming_feed_flv": "string",
    "is_active": true,
    "is_enabled": true,
    "is_public": true,
    "is_published": true,
    "key": "string",
    "media_source_id": "string",
    "playlists": [
      {
        "id": "string",
        "is_enabled": true,
        "is_transcoded": true,
        "is_updating": true,
        "is_vod": true,
        "protocol": "PROTOCOL_UNSPECIFIED",
        "type": "TYPE_UNSPECIFIED",
        "url": "string"
      }
    ],
    "project_id": "string",
    "pull_endpoints": [
      {
        "config_id": "string",
        "endpoint": "string",
        "id": "string",
        "is_transcoded": true,
        "protocol": "PROTOCOL_UNSPECIFIED",
        "scene_settings": {
          "is_enabled": true,
          "key_color": "SCENE_KEY_COLOR_UNSPECIFIED",
          "scene_id": "string",
          "variables": {
            "property1": "string",
            "property2": "string"
          }
        },
        "video_representation_id": "string"
      }
    ],
    "pull_ingest_id": "string",
    "push_endpoints": [
      {
        "config_id": "qurnvkspnrjqk",
        "endpoint": "rtmp://something/live",
        "protocol": "RTMP",
        "stream_id": "abcdefghi"
      }
    ],
    "push_ingest_endpoints": [
      {
        "endpoint": "string",
        "in_use": true,
        "protocol": "PUSH_INGEST_PROTOCOL_UNSPECIFIED",
        "region": "REGION_UNSPECIFIED",
        "secure_endpoint": "string",
        "secure_uri": "string",
        "support_tls": true,
        "uri": "string"
      }
    ],
    "region": "REGION_UNSPECIFIED",
    "stats": {
      "audio_bit_rate": 0,
      "audios": [
        {
          "bit_rate": 0,
          "channel_layout": "string",
          "channels": 0,
          "codec": "string",
          "codec_long_name": "string",
          "codec_type": "string",
          "index": 0,
          "profile": "string",
          "sample_fmt": "string",
          "sample_rate": 0
        }
      ],
      "connection_count": 0,
      "sample": {
        "audio_bit_rate": 0,
        "video_bit_rate": 0,
        "video_frame_rate": 0.1,
        "video_key_frame_consistent": true,
        "video_key_frame_interval": 0.1,
        "video_resolution": 0
      },
      "video_bit_rate": 0,
      "video_frame_rate": 0.1,
      "video_key_frame_consistent": true,
      "video_key_frame_interval": 0.1,
      "video_resolution": 0,
      "videos": [
        {
          "bit_rate": 0,
          "codec": "string",
          "codec_long_name": "string",
          "codec_type": "string",
          "frame_rate": 0.1,
          "height": 0,
          "index": 0,
          "level": 0,
          "pix_fmt": "string",
          "profile": "string",
          "resolution": 0,
          "start_pts": 0,
          "width": 0
        }
      ]
    },
    "title": "string",
    "transcoding_state": "STATE_UNSPECIFIED",
    "transcoding_time_seconds": 0,
    "type": "TYPE_UNSPECIFIED",
    "upload_id": "string",
    "vod_asset_id": "string"
  }
}

Properties

Name Type Required Restrictions Description
stream mycujoo.streaming.v1.Stream false none none

mycujoo.streaming.v1.CreateVideoRepresentationResponse

{
  "video_representation": {
    "bitrate": 100,
    "framerate": 24,
    "height": 240,
    "id": "string",
    "is_enabled": true,
    "is_system": true,
    "name": "string",
    "width": 320
  }
}

Properties

Name Type Required Restrictions Description
video_representation mycujoo.streaming.v1.VideoRepresentation false none none

mycujoo.streaming.v1.DRMTechnologies

{
  "fairplay": true,
  "playready": true,
  "widevine": true
}

Properties

Name Type Required Restrictions Description
fairplay boolean false none none
playready boolean false none none
widevine boolean false none none

mycujoo.streaming.v1.DVRSettings

{
  "automatic_vod": true,
  "enabled": true,
  "stop_transcoding_full_dvr": true,
  "window_size": 1
}

Properties

Name Type Required Restrictions Description
automatic_vod boolean false none Automatically make the playlists appear as VOD when transcoding stops.
enabled boolean false none none
stop_transcoding_full_dvr boolean false none when the DVR is full stop transcoding instead of removing old segments. You will not be able to enable transcoding again for this stream after the limit has been reached.
window_size integer(int32) false none Maximum size of the DVR window in seconds. By default, segments will be removed in order from oldest to newest after this limit is reached.

mycujoo.streaming.v1.DeleteClipResponse

{}

Properties

None

mycujoo.streaming.v1.DeleteConfigResponse

{}

Properties

None

mycujoo.streaming.v1.DeletePullIngestResponse

{}

Properties

None

mycujoo.streaming.v1.DeletePushEndpointResponse

{}

Properties

None

mycujoo.streaming.v1.DeleteRecordingAssetResponse

{}

Properties

None

mycujoo.streaming.v1.DeleteStreamResponse

{}

Properties

None

mycujoo.streaming.v1.DeleteVideoRepresentationResponse

{}

Properties

None

mycujoo.streaming.v1.DownloadState

"DOWNLOAD_STATE_UNSPECIFIED"

Properties

Name Type Required Restrictions Description
anonymous string false none none

Enumerated Values

Property Value
anonymous DOWNLOAD_STATE_UNSPECIFIED
anonymous DOWNLOAD_STATE_UNAVAILABLE
anonymous DOWNLOAD_STATE_REQUESTED
anonymous DOWNLOAD_STATE_AVAILABLE

mycujoo.streaming.v1.EndpointSceneSettings

{
  "is_enabled": true,
  "key_color": "SCENE_KEY_COLOR_UNSPECIFIED",
  "scene_id": "string",
  "variables": {
    "property1": "string",
    "property2": "string"
  }
}

Properties

Name Type Required Restrictions Description
is_enabled boolean false none is_enabled is a flag that indicates whether the scene integration is enabled.
The chosen scene will be rendered and applied to the main feed.
key_color mycujoo.streaming.v1.EndpointSceneSettings.SceneKeyColor false none none
scene_id string false none The scene id to be used for the feed.
variables object false none The scene variables to be used for the feed.
The variables are used to replace the placeholders in the scene and inlays.
ยป additionalProperties string false none none

mycujoo.streaming.v1.EndpointSceneSettings.SceneKeyColor

"SCENE_KEY_COLOR_UNSPECIFIED"

Properties

Name Type Required Restrictions Description
anonymous string false none none

Enumerated Values

Property Value
anonymous SCENE_KEY_COLOR_UNSPECIFIED
anonymous SCENE_KEY_COLOR_BLACK
anonymous SCENE_KEY_COLOR_GREEN
anonymous SCENE_KEY_COLOR_BLUE

mycujoo.streaming.v1.FeedDetail

{
  "device": {
    "flash_version": "string",
    "name": "string"
  },
  "http_flv_endpoint": "string",
  "is_active": true,
  "protocol": "INGEST_PROTOCOL_UNSPECIFIED",
  "session_id": "string"
}

Properties

Name Type Required Restrictions Description
device mycujoo.streaming.v1.StreamerDevice false none none
http_flv_endpoint string false none The HTTP-FLV endpoint for the incoming feed for use in the console. Requires a valid bearer token.
is_active boolean false none none
protocol mycujoo.streaming.v1.IngestProtocol false none none
session_id string false none Indicates the feed session id.

mycujoo.streaming.v1.GetClipIamPolicyResponse

{
  "etag": "string",
  "policy": {
    "bindings": [
      {
        "account_ids": [
          "2GzbST9DaEPsNcDTaW30GWnfZyw",
          "2GzbTHf7FfMyGv2F71FWwGRzKWb"
        ],
        "role_id": "owner"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "projects.admin"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "accounts.admin"
      }
    ]
  }
}

Properties

Name Type Required Restrictions Description
etag string(byte) false none none
policy mycujoo.auth.v1.Policy false none Authorization policy.

mycujoo.streaming.v1.GetClipResponse

{
  "clip": {
    "actual_duration": 0,
    "actual_position": 0,
    "created_time": "2019-08-24T14:15:22Z",
    "download": {
      "full_url": "string",
      "size": "string"
    },
    "download_state": "DOWNLOAD_STATE_UNSPECIFIED",
    "full_url": "string",
    "id": "string",
    "state": "CLIP_STATE_UNSPECIFIED",
    "stream_id": "string",
    "title": "string",
    "updated_time": "2019-08-24T14:15:22Z"
  }
}

Properties

Name Type Required Restrictions Description
clip mycujoo.streaming.v1.ClipResponse false none none

mycujoo.streaming.v1.GetConcatRecordingsResponse

{
  "concat": {
    "destination_asset_id": "string",
    "id": "string",
    "state": "STATE_UNSPECIFIED",
    "status": "STATUS_UNSPECIFIED",
    "stream_id": "string"
  }
}

Properties

Name Type Required Restrictions Description
concat mycujoo.streaming.v1.Concat false none none

mycujoo.streaming.v1.GetConfigIamPolicyResponse

{
  "etag": "string",
  "policy": {
    "bindings": [
      {
        "account_ids": [
          "2GzbST9DaEPsNcDTaW30GWnfZyw",
          "2GzbTHf7FfMyGv2F71FWwGRzKWb"
        ],
        "role_id": "owner"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "projects.admin"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "accounts.admin"
      }
    ]
  },
  "resource_hierarchy": [
    {
      "id": "elevendata",
      "type": "project"
    }
  ],
  "resource_title": "string"
}

Properties

Name Type Required Restrictions Description
etag string(byte) false none none
policy mycujoo.auth.v1.Policy false none Authorization policy.
resource_hierarchy [mycujoo.auth.v1.Resource] false none [Resource object reference that is used to represent objects in the IAM system.]
resource_title string false none none

mycujoo.streaming.v1.GetConfigResponse

{
  "config": {
    "auto_enable_vpn_blocking": true,
    "default": true,
    "dvr_settings": {
      "automatic_vod": true,
      "enabled": true,
      "stop_transcoding_full_dvr": true,
      "window_size": 1
    },
    "enable_pull_endpoint": true,
    "enable_raw_pull_endpoint": true,
    "id": "string",
    "is_system": true,
    "name": "string",
    "recording_settings": {
      "autostart": true,
      "enabled": true,
      "record_during_transcoding": true
    },
    "scene_settings": {
      "is_enabled": true,
      "key_color": "SCENE_KEY_COLOR_UNSPECIFIED",
      "scene_id": "string"
    },
    "secure_link": true,
    "transcoding_settings": {
      "audio_bitrate": 32,
      "autostart": true,
      "drm": {
        "fairplay": true,
        "playready": true,
        "widevine": true
      },
      "enabled": true,
      "follow_source_fps": true,
      "gop": 25,
      "interlacing_filter_mode": "INTERLACING_FILTER_MODE_UNSPECIFIED",
      "key_frame_interval": 1,
      "level": 0.1,
      "llhls_settings": {
        "is_enabled": true,
        "part_size": 250,
        "segment_count": 10,
        "segment_size": 1
      },
      "low_latency": true,
      "profile": "TRANSCODING_PROFILE_UNSPECIFIED",
      "segment_size": 1,
      "tracking_pixel": true,
      "use_cdn": true,
      "video_representation_ids": [
        "string"
      ],
      "watermark": {
        "enabled": true,
        "url": "https://images.mls.mycujoo.tv/example.png"
      }
    }
  }
}

Properties

Name Type Required Restrictions Description
config mycujoo.streaming.v1.StreamConfig false none none

mycujoo.streaming.v1.GetHostsResponse

{
  "hosts": {
    "hosts": {
      "property1": {
        "raw": "string",
        "transcoded": "string"
      },
      "property2": {
        "raw": "string",
        "transcoded": "string"
      }
    }
  }
}

Properties

Name Type Required Restrictions Description
hosts mycujoo.streaming.v1.RegionalHosts false none none

mycujoo.streaming.v1.GetPlaylistSecurityResponse

{
  "config": {
    "drm": {
      "fairplay": true,
      "playready": true,
      "widevine": true
    },
    "is_secure_link": true,
    "org_secret": "string"
  }
}

Properties

Name Type Required Restrictions Description
config mycujoo.streaming.v1.PlaylistSecurity false none none

mycujoo.streaming.v1.GetPullIngestIamPolicyResponse

{
  "etag": "string",
  "policy": {
    "bindings": [
      {
        "account_ids": [
          "2GzbST9DaEPsNcDTaW30GWnfZyw",
          "2GzbTHf7FfMyGv2F71FWwGRzKWb"
        ],
        "role_id": "owner"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "projects.admin"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "accounts.admin"
      }
    ]
  }
}

Properties

Name Type Required Restrictions Description
etag string(byte) false none none
policy mycujoo.auth.v1.Policy false none Authorization policy.

mycujoo.streaming.v1.GetPullIngestResponse

{
  "pull_ingest": {
    "endpoint": "string",
    "id": "string",
    "name": "string",
    "protocol": "PULL_INGEST_PROTOCOL_UNSPECIFIED",
    "streams": [
      {
        "status": "PULL_INGEST_STATUS_UNSPECIFIED",
        "stream_id": "string"
      }
    ]
  }
}

Properties

Name Type Required Restrictions Description
pull_ingest mycujoo.streaming.v1.PullIngestEndpoint false none none

mycujoo.streaming.v1.GetRecordingAssetResponse

{
  "recording_asset": {
    "asset_url": "string",
    "id": "string",
    "is_concatenated": true,
    "status": "STATUS_UNSPECIFIED",
    "stream_id": "string",
    "stream_key": "string"
  }
}

Properties

Name Type Required Restrictions Description
recording_asset mycujoo.streaming.v1.RecordingAsset false none none

mycujoo.streaming.v1.GetSecureKeyResponse

{
  "secure_key": {
    "key": "string",
    "version": "string"
  }
}

Properties

Name Type Required Restrictions Description
secure_key mycujoo.streaming.v1.SecureKey false none none

mycujoo.streaming.v1.GetStreamIamPolicyResponse

{
  "etag": "string",
  "policy": {
    "bindings": [
      {
        "account_ids": [
          "2GzbST9DaEPsNcDTaW30GWnfZyw",
          "2GzbTHf7FfMyGv2F71FWwGRzKWb"
        ],
        "role_id": "owner"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "projects.admin"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "accounts.admin"
      }
    ]
  },
  "resource_hierarchy": [
    {
      "id": "elevendata",
      "type": "project"
    }
  ],
  "resource_title": "string"
}

Properties

Name Type Required Restrictions Description
etag string(byte) false none none
policy mycujoo.auth.v1.Policy false none Authorization policy.
resource_hierarchy [mycujoo.auth.v1.Resource] false none [Resource object reference that is used to represent objects in the IAM system.]
resource_title string false none none

mycujoo.streaming.v1.GetStreamPullIngestResponse

{
  "stream_pull_ingest": {
    "endpoint": "string",
    "id": "string",
    "name": "string",
    "protocol": "PULL_INGEST_PROTOCOL_UNSPECIFIED",
    "status": "PULL_INGEST_STATUS_UNSPECIFIED",
    "stream_id": "string"
  }
}

Properties

Name Type Required Restrictions Description
stream_pull_ingest mycujoo.streaming.v1.StreamPullIngestEndpoint false none none

mycujoo.streaming.v1.GetStreamResponse

{
  "stream": {
    "config": {
      "auto_enable_vpn_blocking": true,
      "default": true,
      "dvr_settings": {
        "automatic_vod": true,
        "enabled": true,
        "stop_transcoding_full_dvr": true,
        "window_size": 1
      },
      "enable_pull_endpoint": true,
      "enable_raw_pull_endpoint": true,
      "id": "string",
      "is_system": true,
      "name": "string",
      "recording_settings": {
        "autostart": true,
        "enabled": true,
        "record_during_transcoding": true
      },
      "scene_settings": {
        "is_enabled": true,
        "key_color": "SCENE_KEY_COLOR_UNSPECIFIED",
        "scene_id": "string"
      },
      "secure_link": true,
      "transcoding_settings": {
        "audio_bitrate": 32,
        "autostart": true,
        "drm": {
          "fairplay": true,
          "playready": true,
          "widevine": true
        },
        "enabled": true,
        "follow_source_fps": true,
        "gop": 25,
        "interlacing_filter_mode": "INTERLACING_FILTER_MODE_UNSPECIFIED",
        "key_frame_interval": 1,
        "level": 0.1,
        "llhls_settings": {
          "is_enabled": true,
          "part_size": 250,
          "segment_count": 10,
          "segment_size": 1
        },
        "low_latency": true,
        "profile": "TRANSCODING_PROFILE_UNSPECIFIED",
        "segment_size": 1,
        "tracking_pixel": true,
        "use_cdn": true,
        "video_representation_ids": [
          "string"
        ],
        "watermark": {
          "enabled": true,
          "url": "https://images.mls.mycujoo.tv/example.png"
        }
      }
    },
    "config_id": "string",
    "connection_time_seconds": 0,
    "endpoint": "string",
    "external_video_source": "string",
    "id": "string",
    "incoming_feed": {
      "device": {
        "flash_version": "string",
        "name": "string"
      },
      "http_flv_endpoint": "string",
      "is_active": true,
      "protocol": "INGEST_PROTOCOL_UNSPECIFIED",
      "session_id": "string"
    },
    "incoming_feed_flv": "string",
    "is_active": true,
    "is_enabled": true,
    "is_public": true,
    "is_published": true,
    "key": "string",
    "media_source_id": "string",
    "playlists": [
      {
        "id": "string",
        "is_enabled": true,
        "is_transcoded": true,
        "is_updating": true,
        "is_vod": true,
        "protocol": "PROTOCOL_UNSPECIFIED",
        "type": "TYPE_UNSPECIFIED",
        "url": "string"
      }
    ],
    "project_id": "string",
    "pull_endpoints": [
      {
        "config_id": "string",
        "endpoint": "string",
        "id": "string",
        "is_transcoded": true,
        "protocol": "PROTOCOL_UNSPECIFIED",
        "scene_settings": {
          "is_enabled": true,
          "key_color": "SCENE_KEY_COLOR_UNSPECIFIED",
          "scene_id": "string",
          "variables": {
            "property1": "string",
            "property2": "string"
          }
        },
        "video_representation_id": "string"
      }
    ],
    "pull_ingest_id": "string",
    "push_endpoints": [
      {
        "config_id": "qurnvkspnrjqk",
        "endpoint": "rtmp://something/live",
        "protocol": "RTMP",
        "stream_id": "abcdefghi"
      }
    ],
    "push_ingest_endpoints": [
      {
        "endpoint": "string",
        "in_use": true,
        "protocol": "PUSH_INGEST_PROTOCOL_UNSPECIFIED",
        "region": "REGION_UNSPECIFIED",
        "secure_endpoint": "string",
        "secure_uri": "string",
        "support_tls": true,
        "uri": "string"
      }
    ],
    "region": "REGION_UNSPECIFIED",
    "stats": {
      "audio_bit_rate": 0,
      "audios": [
        {
          "bit_rate": 0,
          "channel_layout": "string",
          "channels": 0,
          "codec": "string",
          "codec_long_name": "string",
          "codec_type": "string",
          "index": 0,
          "profile": "string",
          "sample_fmt": "string",
          "sample_rate": 0
        }
      ],
      "connection_count": 0,
      "sample": {
        "audio_bit_rate": 0,
        "video_bit_rate": 0,
        "video_frame_rate": 0.1,
        "video_key_frame_consistent": true,
        "video_key_frame_interval": 0.1,
        "video_resolution": 0
      },
      "video_bit_rate": 0,
      "video_frame_rate": 0.1,
      "video_key_frame_consistent": true,
      "video_key_frame_interval": 0.1,
      "video_resolution": 0,
      "videos": [
        {
          "bit_rate": 0,
          "codec": "string",
          "codec_long_name": "string",
          "codec_type": "string",
          "frame_rate": 0.1,
          "height": 0,
          "index": 0,
          "level": 0,
          "pix_fmt": "string",
          "profile": "string",
          "resolution": 0,
          "start_pts": 0,
          "width": 0
        }
      ]
    },
    "title": "string",
    "transcoding_state": "STATE_UNSPECIFIED",
    "transcoding_time_seconds": 0,
    "type": "TYPE_UNSPECIFIED",
    "upload_id": "string",
    "vod_asset_id": "string"
  }
}

Properties

Name Type Required Restrictions Description
stream mycujoo.streaming.v1.Stream false none none

mycujoo.streaming.v1.GetStreamSessionActivitiesResponse

{
  "next_page_token": "string",
  "sessions": [
    {
      "activities": [
        {
          "timestamp": "2019-08-24T14:15:22Z",
          "type": "string"
        }
      ],
      "id": "string"
    }
  ],
  "total_size": 0
}

Properties

Name Type Required Restrictions Description
next_page_token string false none If there are more results than have been returned, then this field is set
to a non-empty value. To see the additional results,
use that value as page_token in the next call to this method.
sessions [mycujoo.streaming.v1.SessionActivity] false none none
total_size integer(int32) false none A positive number that is the maximum number of results to return with that requested filter(s).

mycujoo.streaming.v1.GetStreamStatsTimeSeriesResponse

{
  "stream_stats": [
    {
      "audio_bit_rate": 0,
      "connection_count": 0,
      "key_frame_consistent": true,
      "key_frame_interval": 0.1,
      "time": "2019-08-24T14:15:22Z",
      "video_bit_rate": 0,
      "video_fps": 0.1,
      "video_height": 0
    }
  ]
}

Properties

Name Type Required Restrictions Description
stream_stats [mycujoo.streaming.v1.StreamStatsPoint] false none none

mycujoo.streaming.v1.GetTranscodingResponse

{
  "transcoding": {
    "id": "string",
    "progress": 100,
    "start_offset": 0,
    "state": "STATE_UNSPECIFIED",
    "status": "STATUS_UNSPECIFIED",
    "stream_id": "string"
  }
}

Properties

Name Type Required Restrictions Description
transcoding mycujoo.streaming.v1.Transcoding false none none

mycujoo.streaming.v1.GetTranscodingSessionActivitiesResponse

{
  "activities": [
    {
      "create_time": "2019-08-24T14:15:22Z",
      "duration": 0.1,
      "is_session_active": true,
      "session_id": "string",
      "source_ingest_ip": "string",
      "update_time": "2019-08-24T14:15:22Z"
    }
  ]
}

Properties

Name Type Required Restrictions Description
activities [mycujoo.streaming.v1.TranscodingSessionActivity] false none none

mycujoo.streaming.v1.GetVideoRepresentationIamPolicyResponse

{
  "etag": "string",
  "policy": {
    "bindings": [
      {
        "account_ids": [
          "2GzbST9DaEPsNcDTaW30GWnfZyw",
          "2GzbTHf7FfMyGv2F71FWwGRzKWb"
        ],
        "role_id": "owner"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "projects.admin"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "accounts.admin"
      }
    ]
  }
}

Properties

Name Type Required Restrictions Description
etag string(byte) false none none
policy mycujoo.auth.v1.Policy false none Authorization policy.

mycujoo.streaming.v1.GetVideoRepresentationResponse

{
  "video_representation": {
    "bitrate": 100,
    "framerate": 24,
    "height": 240,
    "id": "string",
    "is_enabled": true,
    "is_system": true,
    "name": "string",
    "width": 320
  }
}

Properties

Name Type Required Restrictions Description
video_representation mycujoo.streaming.v1.VideoRepresentation false none none

mycujoo.streaming.v1.Host

{
  "raw": "string",
  "transcoded": "string"
}

Properties

Name Type Required Restrictions Description
raw string false none none
transcoded string false none none

mycujoo.streaming.v1.IngestProtocol

"INGEST_PROTOCOL_UNSPECIFIED"

Properties

Name Type Required Restrictions Description
anonymous string false none none

Enumerated Values

Property Value
anonymous INGEST_PROTOCOL_UNSPECIFIED
anonymous INGEST_PROTOCOL_RTMP
anonymous INGEST_PROTOCOL_SRT

mycujoo.streaming.v1.LLHLSSettings

{
  "is_enabled": true,
  "part_size": 250,
  "segment_count": 10,
  "segment_size": 1
}

Properties

Name Type Required Restrictions Description
is_enabled boolean false none Enable low latency HLS
LLHLS is available for live streams.
part_size integer(int32) false none Low latency HLS part size in milliseconds
Recommended value is 500.
segment_count integer(int32) false none Low latency HLS segment count.
Number of segments to keep in the playlist during live streaming.
Recommended value is 30.
segment_size integer(int32) false none Low latency HLS segment size in seconds
Recommended value is 2.

mycujoo.streaming.v1.ListClipsResponse

{
  "clips": [
    {
      "actual_duration": 0,
      "actual_position": 0,
      "created_time": "2019-08-24T14:15:22Z",
      "download": {
        "full_url": "string",
        "size": "string"
      },
      "download_state": "DOWNLOAD_STATE_UNSPECIFIED",
      "full_url": "string",
      "id": "string",
      "state": "CLIP_STATE_UNSPECIFIED",
      "stream_id": "string",
      "title": "string",
      "updated_time": "2019-08-24T14:15:22Z"
    }
  ],
  "next_page_token": "string"
}

Properties

Name Type Required Restrictions Description
clips [mycujoo.streaming.v1.ClipResponse] false none none
next_page_token string false none If there are more results than have been returned, then this field is set
to a non-empty value. To see the additional results,
use that value as page_token in the next call to this method.

mycujoo.streaming.v1.ListConfigsResponse

{
  "configs": [
    {
      "auto_enable_vpn_blocking": true,
      "default": true,
      "dvr_settings": {
        "automatic_vod": true,
        "enabled": true,
        "stop_transcoding_full_dvr": true,
        "window_size": 1
      },
      "enable_pull_endpoint": true,
      "enable_raw_pull_endpoint": true,
      "id": "string",
      "is_system": true,
      "name": "string",
      "recording_settings": {
        "autostart": true,
        "enabled": true,
        "record_during_transcoding": true
      },
      "scene_settings": {
        "is_enabled": true,
        "key_color": "SCENE_KEY_COLOR_UNSPECIFIED",
        "scene_id": "string"
      },
      "secure_link": true,
      "transcoding_settings": {
        "audio_bitrate": 32,
        "autostart": true,
        "drm": {
          "fairplay": true,
          "playready": true,
          "widevine": true
        },
        "enabled": true,
        "follow_source_fps": true,
        "gop": 25,
        "interlacing_filter_mode": "INTERLACING_FILTER_MODE_UNSPECIFIED",
        "key_frame_interval": 1,
        "level": 0.1,
        "llhls_settings": {
          "is_enabled": true,
          "part_size": 250,
          "segment_count": 10,
          "segment_size": 1
        },
        "low_latency": true,
        "profile": "TRANSCODING_PROFILE_UNSPECIFIED",
        "segment_size": 1,
        "tracking_pixel": true,
        "use_cdn": true,
        "video_representation_ids": [
          "string"
        ],
        "watermark": {
          "enabled": true,
          "url": "https://images.mls.mycujoo.tv/example.png"
        }
      }
    }
  ],
  "next_page_token": "string"
}

Properties

Name Type Required Restrictions Description
configs [mycujoo.streaming.v1.StreamConfig] false none none
next_page_token string false none If there are more results than have been returned, then this field is set
to a non-empty value. To see the additional results,
use that value as page_token in the next call to this method.

mycujoo.streaming.v1.ListPullIngestResponse

{
  "next_page_token": "string",
  "previous_page_token": "string",
  "pull_ingest_endpoints": [
    {
      "endpoint": "string",
      "id": "string",
      "name": "string",
      "protocol": "PULL_INGEST_PROTOCOL_UNSPECIFIED",
      "streams": [
        {
          "status": "PULL_INGEST_STATUS_UNSPECIFIED",
          "stream_id": "string"
        }
      ]
    }
  ],
  "total_size": 0
}

Properties

Name Type Required Restrictions Description
next_page_token string false none none
previous_page_token string false none none
pull_ingest_endpoints [mycujoo.streaming.v1.PullIngestEndpoint] false none none
total_size integer(int32) false none The total count of items in the list irrespective of pagination.
Will be present only when request 'include' field ask for it.

mycujoo.streaming.v1.ListRecordingAssetsResponse

{
  "next_page_token": "string",
  "recording_assets": [
    {
      "asset_url": "string",
      "id": "string",
      "is_concatenated": true,
      "status": "STATUS_UNSPECIFIED",
      "stream_id": "string",
      "stream_key": "string"
    }
  ]
}

Properties

Name Type Required Restrictions Description
next_page_token string false none If there are more results than have been returned, then this field is set
to a non-empty value. To see the additional results,
use that value as page_token in the next call to this method.
recording_assets [mycujoo.streaming.v1.RecordingAsset] false none none

mycujoo.streaming.v1.ListStreamsResponse

{
  "next_page_token": "string",
  "streams": [
    {
      "config": {
        "auto_enable_vpn_blocking": true,
        "default": true,
        "dvr_settings": {
          "automatic_vod": true,
          "enabled": true,
          "stop_transcoding_full_dvr": true,
          "window_size": 1
        },
        "enable_pull_endpoint": true,
        "enable_raw_pull_endpoint": true,
        "id": "string",
        "is_system": true,
        "name": "string",
        "recording_settings": {
          "autostart": true,
          "enabled": true,
          "record_during_transcoding": true
        },
        "scene_settings": {
          "is_enabled": true,
          "key_color": "SCENE_KEY_COLOR_UNSPECIFIED",
          "scene_id": "string"
        },
        "secure_link": true,
        "transcoding_settings": {
          "audio_bitrate": 32,
          "autostart": true,
          "drm": {
            "fairplay": true,
            "playready": true,
            "widevine": true
          },
          "enabled": true,
          "follow_source_fps": true,
          "gop": 25,
          "interlacing_filter_mode": "INTERLACING_FILTER_MODE_UNSPECIFIED",
          "key_frame_interval": 1,
          "level": 0.1,
          "llhls_settings": {
            "is_enabled": true,
            "part_size": 250,
            "segment_count": 10,
            "segment_size": 1
          },
          "low_latency": true,
          "profile": "TRANSCODING_PROFILE_UNSPECIFIED",
          "segment_size": 1,
          "tracking_pixel": true,
          "use_cdn": true,
          "video_representation_ids": [
            "string"
          ],
          "watermark": {
            "enabled": true,
            "url": "https://images.mls.mycujoo.tv/example.png"
          }
        }
      },
      "config_id": "string",
      "connection_time_seconds": 0,
      "endpoint": "string",
      "external_video_source": "string",
      "id": "string",
      "incoming_feed": {
        "device": {
          "flash_version": "string",
          "name": "string"
        },
        "http_flv_endpoint": "string",
        "is_active": true,
        "protocol": "INGEST_PROTOCOL_UNSPECIFIED",
        "session_id": "string"
      },
      "incoming_feed_flv": "string",
      "is_active": true,
      "is_enabled": true,
      "is_public": true,
      "is_published": true,
      "key": "string",
      "media_source_id": "string",
      "playlists": [
        {
          "id": "string",
          "is_enabled": true,
          "is_transcoded": true,
          "is_updating": true,
          "is_vod": true,
          "protocol": "PROTOCOL_UNSPECIFIED",
          "type": "TYPE_UNSPECIFIED",
          "url": "string"
        }
      ],
      "project_id": "string",
      "pull_endpoints": [
        {
          "config_id": "string",
          "endpoint": "string",
          "id": "string",
          "is_transcoded": true,
          "protocol": "PROTOCOL_UNSPECIFIED",
          "scene_settings": {
            "is_enabled": true,
            "key_color": "SCENE_KEY_COLOR_UNSPECIFIED",
            "scene_id": "string",
            "variables": {
              "property1": "string",
              "property2": "string"
            }
          },
          "video_representation_id": "string"
        }
      ],
      "pull_ingest_id": "string",
      "push_endpoints": [
        {
          "config_id": "qurnvkspnrjqk",
          "endpoint": "rtmp://something/live",
          "protocol": "RTMP",
          "stream_id": "abcdefghi"
        }
      ],
      "push_ingest_endpoints": [
        {
          "endpoint": "string",
          "in_use": true,
          "protocol": "PUSH_INGEST_PROTOCOL_UNSPECIFIED",
          "region": "REGION_UNSPECIFIED",
          "secure_endpoint": "string",
          "secure_uri": "string",
          "support_tls": true,
          "uri": "string"
        }
      ],
      "region": "REGION_UNSPECIFIED",
      "stats": {
        "audio_bit_rate": 0,
        "audios": [
          {
            "bit_rate": 0,
            "channel_layout": "string",
            "channels": 0,
            "codec": "string",
            "codec_long_name": "string",
            "codec_type": "string",
            "index": 0,
            "profile": "string",
            "sample_fmt": "string",
            "sample_rate": 0
          }
        ],
        "connection_count": 0,
        "sample": {
          "audio_bit_rate": 0,
          "video_bit_rate": 0,
          "video_frame_rate": 0.1,
          "video_key_frame_consistent": true,
          "video_key_frame_interval": 0.1,
          "video_resolution": 0
        },
        "video_bit_rate": 0,
        "video_frame_rate": 0.1,
        "video_key_frame_consistent": true,
        "video_key_frame_interval": 0.1,
        "video_resolution": 0,
        "videos": [
          {
            "bit_rate": 0,
            "codec": "string",
            "codec_long_name": "string",
            "codec_type": "string",
            "frame_rate": 0.1,
            "height": 0,
            "index": 0,
            "level": 0,
            "pix_fmt": "string",
            "profile": "string",
            "resolution": 0,
            "start_pts": 0,
            "width": 0
          }
        ]
      },
      "title": "string",
      "transcoding_state": "STATE_UNSPECIFIED",
      "transcoding_time_seconds": 0,
      "type": "TYPE_UNSPECIFIED",
      "upload_id": "string",
      "vod_asset_id": "string"
    }
  ],
  "total_size": 0
}

Properties

Name Type Required Restrictions Description
next_page_token string false none If there are more results than have been returned, then this field is set
to a non-empty value. To see the additional results,
use that value as page_token in the next call to this method.
streams [mycujoo.streaming.v1.Stream] false none none
total_size integer(int32) false none A positive number that is the maximum number of results to return with that requested filter(s).

mycujoo.streaming.v1.ListVideoRepresentationsResponse

{
  "next_page_token": "string",
  "video_representations": [
    {
      "bitrate": 100,
      "framerate": 24,
      "height": 240,
      "id": "string",
      "is_enabled": true,
      "is_system": true,
      "name": "string",
      "width": 320
    }
  ]
}

Properties

Name Type Required Restrictions Description
next_page_token string false none If there are more results than have been returned, then this field is set
to a non-empty value. To see the additional results,
use that value as page_token in the next call to this method.
video_representations [mycujoo.streaming.v1.VideoRepresentation] false none none

mycujoo.streaming.v1.PatchHost

{
  "cdn_name": "string",
  "raw_is_active": true,
  "region": "REGION_UNSPECIFIED",
  "transcoded_is_active": true
}

Properties

Name Type Required Restrictions Description
cdn_name string false none none
raw_is_active boolean false none none
region mycujoo.streaming.v1.PatchHost.Region false none none
transcoded_is_active boolean false none none

mycujoo.streaming.v1.PatchHost.Region

"REGION_UNSPECIFIED"

Properties

Name Type Required Restrictions Description
anonymous string false none none

Enumerated Values

Property Value
anonymous REGION_UNSPECIFIED
anonymous REGION_EUROPE_WEST
anonymous REGION_US_EAST
anonymous REGION_SOUTH_AMERICA_EAST
anonymous REGION_ASIA_SOUTH_EAST

mycujoo.streaming.v1.PatchHostResponse

{
  "host": {
    "cdn_name": "string",
    "raw_is_active": true,
    "region": "REGION_UNSPECIFIED",
    "transcoded_is_active": true
  }
}

Properties

Name Type Required Restrictions Description
host mycujoo.streaming.v1.PatchHost false none none

mycujoo.streaming.v1.Playlist

{
  "id": "string",
  "is_enabled": true,
  "is_transcoded": true,
  "is_updating": true,
  "is_vod": true,
  "protocol": "PROTOCOL_UNSPECIFIED",
  "type": "TYPE_UNSPECIFIED",
  "url": "string"
}

Properties

Name Type Required Restrictions Description
id string false none none
is_enabled boolean false none none
is_transcoded boolean false none none
is_updating boolean false none indicates if the playlist should be considered as active. If a playlist is active it should be actively updating.
is_vod boolean false none none
protocol mycujoo.streaming.v1.Playlist.Protocol false none none
type mycujoo.streaming.v1.Playlist.Type false none none
url string false none Playlist used to play the stream.
Note that this does not include the generated token required for secure streaming.
Please consult the user guide for further details.

mycujoo.streaming.v1.Playlist.Protocol

"PROTOCOL_UNSPECIFIED"

Properties

Name Type Required Restrictions Description
anonymous string false none none

Enumerated Values

Property Value
anonymous PROTOCOL_UNSPECIFIED
anonymous PROTOCOL_HLS

mycujoo.streaming.v1.Playlist.Type

"TYPE_UNSPECIFIED"

Properties

Name Type Required Restrictions Description
anonymous string false none none

Enumerated Values

Property Value
anonymous TYPE_UNSPECIFIED
anonymous TYPE_ORIGIN
anonymous TYPE_CDN

mycujoo.streaming.v1.PlaylistSecurity

{
  "drm": {
    "fairplay": true,
    "playready": true,
    "widevine": true
  },
  "is_secure_link": true,
  "org_secret": "string"
}

Properties

Name Type Required Restrictions Description
drm mycujoo.streaming.v1.DRMTechnologies false none none
is_secure_link boolean false none none
org_secret string false none none

mycujoo.streaming.v1.PostClipDownloadResponse

{
  "download": {
    "full_url": "string",
    "size": "string"
  },
  "download_state": "DOWNLOAD_STATE_UNSPECIFIED"
}

Properties

Name Type Required Restrictions Description
download mycujoo.streaming.v1.ClipDownload false none none
download_state mycujoo.streaming.v1.DownloadState false none none

mycujoo.streaming.v1.PostTranscodingSessionActivityResponse

{}

Properties

None

mycujoo.streaming.v1.PullEndpointUpdate

{
  "config_id": "string",
  "scene_settings": {
    "is_enabled": true,
    "key_color": "SCENE_KEY_COLOR_UNSPECIFIED",
    "scene_id": "string",
    "variables": {
      "property1": "string",
      "property2": "string"
    }
  },
  "video_representation_id": "string"
}

Properties

Name Type Required Restrictions Description
config_id string false none none
scene_settings mycujoo.streaming.v1.EndpointSceneSettings false none none
video_representation_id string false none Video representation ID associated with this endpoint.

mycujoo.streaming.v1.PullIngestEndpoint

{
  "endpoint": "string",
  "id": "string",
  "name": "string",
  "protocol": "PULL_INGEST_PROTOCOL_UNSPECIFIED",
  "streams": [
    {
      "status": "PULL_INGEST_STATUS_UNSPECIFIED",
      "stream_id": "string"
    }
  ]
}

Properties

Name Type Required Restrictions Description
endpoint string false none none
id string false none Unique id of the pull ingest endpoint.
name string false none none
protocol mycujoo.streaming.v1.PullIngestProtocol false none - PULL_INGEST_PROTOCOL_RTMP: RTMPS is simply RTMP with an added layer of security
for protected streaming. So they are the same protocol
streams [mycujoo.streaming.v1.StreamsPullIngestEndpoint] false none none

mycujoo.streaming.v1.PullIngestEndpointUpdateFields

{
  "endpoint": "string",
  "name": "string",
  "protocol": "PULL_INGEST_PROTOCOL_UNSPECIFIED"
}

Properties

Name Type Required Restrictions Description
endpoint string false none none
name string false none none
protocol mycujoo.streaming.v1.PullIngestProtocol false none - PULL_INGEST_PROTOCOL_RTMP: RTMPS is simply RTMP with an added layer of security
for protected streaming. So they are the same protocol

mycujoo.streaming.v1.PullIngestProtocol

"PULL_INGEST_PROTOCOL_UNSPECIFIED"


Pull ingest

Properties

Name Type Required Restrictions Description
-----

Pull ingest -----|string|false|none|- PULL_INGEST_PROTOCOL_RTMP: RTMPS is simply RTMP with an added layer of security
for protected streaming. So they are the same protocol|

Enumerated Values

Property Value
-----

Pull ingest -----|PULL_INGEST_PROTOCOL_UNSPECIFIED| |----- Pull ingest -----|PULL_INGEST_PROTOCOL_RTMP| |----- Pull ingest -----|PULL_INGEST_PROTOCOL_SRT| |----- Pull ingest -----|PULL_INGEST_PROTOCOL_HLS| |----- Pull ingest -----|PULL_INGEST_PROTOCOL_DASH| |----- Pull ingest -----|PULL_INGEST_PROTOCOL_RTSP|

mycujoo.streaming.v1.PullIngestStatus

"PULL_INGEST_STATUS_UNSPECIFIED"

Properties

Name Type Required Restrictions Description
anonymous string false none none

Enumerated Values

Property Value
anonymous PULL_INGEST_STATUS_UNSPECIFIED
anonymous PULL_INGEST_STATUS_CREATING
anonymous PULL_INGEST_STATUS_CONNECTING
anonymous PULL_INGEST_STATUS_RETRYING
anonymous PULL_INGEST_STATUS_STOPPED
anonymous PULL_INGEST_STATUS_FAILED
anonymous PULL_INGEST_STATUS_ACTIVE
anonymous PULL_INGEST_STATUS_DELETING

mycujoo.streaming.v1.PullIngestTestIamPermissionsRequest

{
  "permissions": [
    "projects.create",
    "projects.update",
    "projects.delete"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
}

Properties

Name Type Required Restrictions Description
permissions [string] true none none
resource mycujoo.auth.v1.Resource true none Resource object reference that is used to represent objects in the IAM system.

mycujoo.streaming.v1.PullIngestTestIamPermissionsResponse

{
  "permissions": [
    "projects.create",
    "projects.update"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
}

Properties

Name Type Required Restrictions Description
permissions [string] false none none
resource mycujoo.auth.v1.Resource false none Resource object reference that is used to represent objects in the IAM system.

mycujoo.streaming.v1.PushIngestEndpoint

{
  "endpoint": "string",
  "in_use": true,
  "protocol": "PUSH_INGEST_PROTOCOL_UNSPECIFIED",
  "region": "REGION_UNSPECIFIED",
  "secure_endpoint": "string",
  "secure_uri": "string",
  "support_tls": true,
  "uri": "string"
}

Properties

Name Type Required Restrictions Description
endpoint string false none none
in_use boolean false none Indicates whether you are streaming to this endpoint or not.
protocol mycujoo.streaming.v1.PushIngestProtocol false none none
region mycujoo.streaming.v1.Region false none none
secure_endpoint string false none In the case of TLS support.
The value of this field indicates the secure endpoint.
secure_uri string false none In the case of TLS support.
It has the full URI of the secure ingest endpoint.
support_tls boolean false none When enabled, Your traffic will be sent to our servers, encrypted.
uri string false none none

mycujoo.streaming.v1.PushIngestProtocol

"PUSH_INGEST_PROTOCOL_UNSPECIFIED"


Push Ingest

Properties

Name Type Required Restrictions Description
-----

Push Ingest -----|string|false|none|none|

Enumerated Values

Property Value
-----

Push Ingest -----|PUSH_INGEST_PROTOCOL_UNSPECIFIED| |----- Push Ingest -----|PUSH_INGEST_PROTOCOL_RTMP| |----- Push Ingest -----|PUSH_INGEST_PROTOCOL_SRT|

mycujoo.streaming.v1.PutHostRequest

{
  "cdn_name": "string",
  "org_id": "string",
  "playlist_type": "PLAYLIST_TYPE_UNSPECIFIED",
  "project_id": "string",
  "region": "REGION_UNSPECIFIED",
  "vhost_domain": "string"
}

Properties

Name Type Required Restrictions Description
cdn_name string false none none
org_id string false none none
playlist_type mycujoo.streaming.v1.PutHostRequest.PlaylistType false none none
project_id string false none none
region mycujoo.streaming.v1.PutHostRequest.Region false none none
vhost_domain string false none none

mycujoo.streaming.v1.PutHostRequest.PlaylistType

"PLAYLIST_TYPE_UNSPECIFIED"

Properties

Name Type Required Restrictions Description
anonymous string false none none

Enumerated Values

Property Value
anonymous PLAYLIST_TYPE_UNSPECIFIED
anonymous PLAYLIST_TYPE_RAW
anonymous PLAYLIST_TYPE_TRANSCODED
anonymous PLAYLIST_TYPE_ALL

mycujoo.streaming.v1.PutHostRequest.Region

"REGION_UNSPECIFIED"

Properties

Name Type Required Restrictions Description
anonymous string false none none

Enumerated Values

Property Value
anonymous REGION_UNSPECIFIED
anonymous REGION_EUROPE_WEST
anonymous REGION_US_EAST
anonymous REGION_SOUTH_AMERICA_EAST
anonymous REGION_ASIA_SOUTH_EAST

mycujoo.streaming.v1.PutHostResponse

{
  "host": {
    "hosts": {
      "property1": {
        "raw": "string",
        "transcoded": "string"
      },
      "property2": {
        "raw": "string",
        "transcoded": "string"
      }
    }
  }
}

Properties

Name Type Required Restrictions Description
host mycujoo.streaming.v1.RegionalHosts false none none

mycujoo.streaming.v1.RecordingAsset

{
  "asset_url": "string",
  "id": "string",
  "is_concatenated": true,
  "status": "STATUS_UNSPECIFIED",
  "stream_id": "string",
  "stream_key": "string"
}

Properties

Name Type Required Restrictions Description
asset_url string false none Returned by the API, cannot be set.
A unique URL which is only valid for 48 hours is generated for this asset.
Can be NULL if the recording is still running.
id string false none none
is_concatenated boolean false none none
status mycujoo.streaming.v1.RecordingAsset.Status false none none
stream_id string false none none
stream_key string false none none

mycujoo.streaming.v1.RecordingAsset.Status

"STATUS_UNSPECIFIED"

Properties

Name Type Required Restrictions Description
anonymous string false none none

Enumerated Values

Property Value
anonymous STATUS_UNSPECIFIED
anonymous STATUS_DONE
anonymous STATUS_FAILED

mycujoo.streaming.v1.RecordingSettings

{
  "autostart": true,
  "enabled": true,
  "record_during_transcoding": true
}

Properties

Name Type Required Restrictions Description
autostart boolean false none Start recording while the stream is connected.
enabled boolean false none none
record_during_transcoding boolean false none Enable/disable recording while transcoding is active. NOTE: When this is set regular autostart is ignored.

mycujoo.streaming.v1.Region

"REGION_UNSPECIFIED"

Properties

Name Type Required Restrictions Description
anonymous string false none none

Enumerated Values

Property Value
anonymous REGION_UNSPECIFIED
anonymous REGION_EUROPE_WEST
anonymous REGION_US_EAST
anonymous REGION_SOUTH_AMERICA_EAST
anonymous REGION_ASIA_SOUTH_EAST
anonymous REGION_AUTODETECT

mycujoo.streaming.v1.RegionalHosts

{
  "hosts": {
    "property1": {
      "raw": "string",
      "transcoded": "string"
    },
    "property2": {
      "raw": "string",
      "transcoded": "string"
    }
  }
}

Properties

Name Type Required Restrictions Description
hosts object false none none
ยป additionalProperties mycujoo.streaming.v1.Host false none none

mycujoo.streaming.v1.RestartPushEndpointResponse

{}

Properties

None

mycujoo.streaming.v1.RestartStreamPullIngestResponse

{}

Properties

None

mycujoo.streaming.v1.SampleStats

{
  "audio_bit_rate": 0,
  "video_bit_rate": 0,
  "video_frame_rate": 0.1,
  "video_key_frame_consistent": true,
  "video_key_frame_interval": 0.1,
  "video_resolution": 0
}

Properties

Name Type Required Restrictions Description
audio_bit_rate integer(int32) false none Audio bit rate in kbps.
video_bit_rate integer(int32) false none Video bit rate in kbps.
video_frame_rate number(double) false none Video frame rate in frames per second (fps).
video_key_frame_consistent boolean false none Whether the key frame interval (KFI) is consistent with the previous data set.
This is to flag cases where due to change of frame rate, or encoder problems can trouble key frame generation.
video_key_frame_interval number(double) false none Video key frame interval (KFI). A key frame is created in every interval.
video_resolution integer(int32) false none Video resolution in pixels being sent to the RTMP server.

mycujoo.streaming.v1.SceneSettings

{
  "is_enabled": true,
  "key_color": "SCENE_KEY_COLOR_UNSPECIFIED",
  "scene_id": "string"
}

Properties

Name Type Required Restrictions Description
is_enabled boolean false none is_enabled is a flag that indicates whether the scene integration is enabled.
The chosen scene will be rendered and applied to the main feed.
key_color mycujoo.streaming.v1.SceneSettings.SceneKeyColor false none none
scene_id string false none The scene id to be used for the feed.

mycujoo.streaming.v1.SceneSettings.SceneKeyColor

"SCENE_KEY_COLOR_UNSPECIFIED"

Properties

Name Type Required Restrictions Description
anonymous string false none none

Enumerated Values

Property Value
anonymous SCENE_KEY_COLOR_UNSPECIFIED
anonymous SCENE_KEY_COLOR_BLACK
anonymous SCENE_KEY_COLOR_GREEN
anonymous SCENE_KEY_COLOR_BLUE

mycujoo.streaming.v1.SecureKey

{
  "key": "string",
  "version": "string"
}

Properties

Name Type Required Restrictions Description
key string false none The key used to generate secure links.
Generated by API, cannot be set.
version string false none Version of the secure key.
Generated by API, cannot be set.

mycujoo.streaming.v1.SecureKeyUpdate

{
  "version": "string"
}

Properties

Name Type Required Restrictions Description
version string false none Send version returned by GetSecureKey to avoid conflicting updates.

mycujoo.streaming.v1.SessionActivity

{
  "activities": [
    {
      "timestamp": "2019-08-24T14:15:22Z",
      "type": "string"
    }
  ],
  "id": "string"
}

Properties

Name Type Required Restrictions Description
activities [mycujoo.streaming.v1.Activity] false none none
id string false none none

mycujoo.streaming.v1.SetClipIamPolicyResponse

{}

When there is no error result is empty

Properties

None

mycujoo.streaming.v1.SetConfigIamPolicyResponse

{}

When there is no error result is empty

Properties

None

mycujoo.streaming.v1.SetPullIngestIamPolicyResponse

{}

When there is no error result is empty

Properties

None

mycujoo.streaming.v1.SetStreamIamPolicyResponse

{}

When there is no error result is empty

Properties

None

mycujoo.streaming.v1.SetVideoRepresentationIamPolicyResponse

{}

When there is no error result is empty

Properties

None

mycujoo.streaming.v1.StartConcatRecordingsRequest.Format

"FORMAT_UNSPECIFIED"

Properties

Name Type Required Restrictions Description
anonymous string false none none

Enumerated Values

Property Value
anonymous FORMAT_UNSPECIFIED
anonymous FORMAT_FLV
anonymous FORMAT_MP4
anonymous FORMAT_TS

mycujoo.streaming.v1.StartConcatRecordingsResponse

{}

Properties

None

mycujoo.streaming.v1.StartPushEndpointResponse

{}

Properties

None

mycujoo.streaming.v1.StartStreamPullIngestResponse

{}

Properties

None

mycujoo.streaming.v1.StartTranscodingImportResponse

{}

Properties

None

mycujoo.streaming.v1.StartTranscodingResponse

{
  "transcoding": {
    "id": "string",
    "progress": 100,
    "start_offset": 0,
    "state": "STATE_UNSPECIFIED",
    "status": "STATUS_UNSPECIFIED",
    "stream_id": "string"
  }
}

Properties

Name Type Required Restrictions Description
transcoding mycujoo.streaming.v1.Transcoding false none none

mycujoo.streaming.v1.StopPushEndpointResponse

{}

Properties

None

mycujoo.streaming.v1.StopRecordingResponse

{}

Properties

None

mycujoo.streaming.v1.StopStreamPullIngestResponse

{}

Properties

None

mycujoo.streaming.v1.StopTranscodingResponse

{
  "transcoding": {
    "id": "string",
    "progress": 100,
    "start_offset": 0,
    "state": "STATE_UNSPECIFIED",
    "status": "STATUS_UNSPECIFIED",
    "stream_id": "string"
  }
}

Properties

Name Type Required Restrictions Description
transcoding mycujoo.streaming.v1.Transcoding false none none

mycujoo.streaming.v1.Stream

{
  "config": {
    "auto_enable_vpn_blocking": true,
    "default": true,
    "dvr_settings": {
      "automatic_vod": true,
      "enabled": true,
      "stop_transcoding_full_dvr": true,
      "window_size": 1
    },
    "enable_pull_endpoint": true,
    "enable_raw_pull_endpoint": true,
    "id": "string",
    "is_system": true,
    "name": "string",
    "recording_settings": {
      "autostart": true,
      "enabled": true,
      "record_during_transcoding": true
    },
    "scene_settings": {
      "is_enabled": true,
      "key_color": "SCENE_KEY_COLOR_UNSPECIFIED",
      "scene_id": "string"
    },
    "secure_link": true,
    "transcoding_settings": {
      "audio_bitrate": 32,
      "autostart": true,
      "drm": {
        "fairplay": true,
        "playready": true,
        "widevine": true
      },
      "enabled": true,
      "follow_source_fps": true,
      "gop": 25,
      "interlacing_filter_mode": "INTERLACING_FILTER_MODE_UNSPECIFIED",
      "key_frame_interval": 1,
      "level": 0.1,
      "llhls_settings": {
        "is_enabled": true,
        "part_size": 250,
        "segment_count": 10,
        "segment_size": 1
      },
      "low_latency": true,
      "profile": "TRANSCODING_PROFILE_UNSPECIFIED",
      "segment_size": 1,
      "tracking_pixel": true,
      "use_cdn": true,
      "video_representation_ids": [
        "string"
      ],
      "watermark": {
        "enabled": true,
        "url": "https://images.mls.mycujoo.tv/example.png"
      }
    }
  },
  "config_id": "string",
  "connection_time_seconds": 0,
  "endpoint": "string",
  "external_video_source": "string",
  "id": "string",
  "incoming_feed": {
    "device": {
      "flash_version": "string",
      "name": "string"
    },
    "http_flv_endpoint": "string",
    "is_active": true,
    "protocol": "INGEST_PROTOCOL_UNSPECIFIED",
    "session_id": "string"
  },
  "incoming_feed_flv": "string",
  "is_active": true,
  "is_enabled": true,
  "is_public": true,
  "is_published": true,
  "key": "string",
  "media_source_id": "string",
  "playlists": [
    {
      "id": "string",
      "is_enabled": true,
      "is_transcoded": true,
      "is_updating": true,
      "is_vod": true,
      "protocol": "PROTOCOL_UNSPECIFIED",
      "type": "TYPE_UNSPECIFIED",
      "url": "string"
    }
  ],
  "project_id": "string",
  "pull_endpoints": [
    {
      "config_id": "string",
      "endpoint": "string",
      "id": "string",
      "is_transcoded": true,
      "protocol": "PROTOCOL_UNSPECIFIED",
      "scene_settings": {
        "is_enabled": true,
        "key_color": "SCENE_KEY_COLOR_UNSPECIFIED",
        "scene_id": "string",
        "variables": {
          "property1": "string",
          "property2": "string"
        }
      },
      "video_representation_id": "string"
    }
  ],
  "pull_ingest_id": "string",
  "push_endpoints": [
    {
      "config_id": "qurnvkspnrjqk",
      "endpoint": "rtmp://something/live",
      "protocol": "RTMP",
      "stream_id": "abcdefghi"
    }
  ],
  "push_ingest_endpoints": [
    {
      "endpoint": "string",
      "in_use": true,
      "protocol": "PUSH_INGEST_PROTOCOL_UNSPECIFIED",
      "region": "REGION_UNSPECIFIED",
      "secure_endpoint": "string",
      "secure_uri": "string",
      "support_tls": true,
      "uri": "string"
    }
  ],
  "region": "REGION_UNSPECIFIED",
  "stats": {
    "audio_bit_rate": 0,
    "audios": [
      {
        "bit_rate": 0,
        "channel_layout": "string",
        "channels": 0,
        "codec": "string",
        "codec_long_name": "string",
        "codec_type": "string",
        "index": 0,
        "profile": "string",
        "sample_fmt": "string",
        "sample_rate": 0
      }
    ],
    "connection_count": 0,
    "sample": {
      "audio_bit_rate": 0,
      "video_bit_rate": 0,
      "video_frame_rate": 0.1,
      "video_key_frame_consistent": true,
      "video_key_frame_interval": 0.1,
      "video_resolution": 0
    },
    "video_bit_rate": 0,
    "video_frame_rate": 0.1,
    "video_key_frame_consistent": true,
    "video_key_frame_interval": 0.1,
    "video_resolution": 0,
    "videos": [
      {
        "bit_rate": 0,
        "codec": "string",
        "codec_long_name": "string",
        "codec_type": "string",
        "frame_rate": 0.1,
        "height": 0,
        "index": 0,
        "level": 0,
        "pix_fmt": "string",
        "profile": "string",
        "resolution": 0,
        "start_pts": 0,
        "width": 0
      }
    ]
  },
  "title": "string",
  "transcoding_state": "STATE_UNSPECIFIED",
  "transcoding_time_seconds": 0,
  "type": "TYPE_UNSPECIFIED",
  "upload_id": "string",
  "vod_asset_id": "string"
}

Properties

Name Type Required Restrictions Description
config mycujoo.streaming.v1.StreamConfig false none none
config_id string false none none
connection_time_seconds integer(int32) false none Connection time (ingest signal) in seconds for the stream.
endpoint string false none Returned by the API, cannot be set.
Returned only when type = live.
example: 'rtmp://mls-eu.mycujoo.stream:1935/live'
This field is deprecated; Please use endpoints field instead.
external_video_source string false none Full URL to a valid external video file.
cannot be set if upload_id is set. Only valid when type = static.
Deprecated: It's not used anymore.
id string false none none
incoming_feed mycujoo.streaming.v1.FeedDetail false none none
incoming_feed_flv string false none The HTTP-FLV endpoint for the incoming feed for use in the console. Requires a valid bearer token.
This field is deprecated; Please use incoming_feed.http_flv_endpoint field instead.
is_active boolean false none none
is_enabled boolean false none none
is_public boolean false none Indicates if the stream should be considered public to the viewers.
is_published boolean false none none
key string false none The unique stream key required to stream to MLS endpoints.
Returned by the API, cannot be set.
Returned only when type = live.
media_source_id string false none Unique ID of the Media Source for this stream. Media Source contains the feed information, from which the stream can get its content.
playlists [mycujoo.streaming.v1.Playlist] false none none
project_id string false none none
pull_endpoints [mycujoo.streaming.v1.StreamPullEndpoint] false none Returned by the API, cannot be set.
Returned only when type = live.
pull_ingest_id string false none Indicates the selected pull ingest id.
It can be empty if the stream doesn't
have any pull ingest.
push_endpoints [mycujoo.streaming.v1.StreamPushEndpoint] false none none
push_ingest_endpoints [mycujoo.streaming.v1.PushIngestEndpoint] false none Returned by the API, cannot be set or modified
Contains all available ingest endpoints
that you can use to start your stream.
region mycujoo.streaming.v1.Region false none none
stats mycujoo.streaming.v1.StreamStats false none none
title string false none title of the stream. Used to identify the stream.
transcoding_state mycujoo.streaming.v1.Stream.State false none none
transcoding_time_seconds integer(int32) false none Transcoding time in seconds for the stream. 0 if transcoding is not started yet.
type mycujoo.streaming.v1.Type false none none
upload_id string false none Use an uploaded video as a source for this stream.
Only valid when type = static.
Deprecated: In favor of vod_asset_id.
vod_asset_id string false none Unique ID of the VOD Asset for this stream. VOD Asset contains the VOD information, from which the stream can get its content.
It refers to the MCLS Asset ID that is created from the Asset Service.

mycujoo.streaming.v1.Stream.State

"STATE_UNSPECIFIED"

TODO: remove this once we have a better solution (i.e. webhooks) for polling Transcoding state enum

Properties

Name Type Required Restrictions Description
TODO: remove this once we have a better solution (i.e. webhooks) for polling
Transcoding state enum string false none none

Enumerated Values

Property Value
TODO: remove this once we have a better solution (i.e. webhooks) for polling
Transcoding state enum STATE_UNSPECIFIED
TODO: remove this once we have a better solution (i.e. webhooks) for polling
Transcoding state enum STATE_ACTIVE
TODO: remove this once we have a better solution (i.e. webhooks) for polling
Transcoding state enum STATE_INACTIVE
TODO: remove this once we have a better solution (i.e. webhooks) for polling
Transcoding state enum STATE_SCHEDULED

mycujoo.streaming.v1.StreamConfig

{
  "auto_enable_vpn_blocking": true,
  "default": true,
  "dvr_settings": {
    "automatic_vod": true,
    "enabled": true,
    "stop_transcoding_full_dvr": true,
    "window_size": 1
  },
  "enable_pull_endpoint": true,
  "enable_raw_pull_endpoint": true,
  "id": "string",
  "is_system": true,
  "name": "string",
  "recording_settings": {
    "autostart": true,
    "enabled": true,
    "record_during_transcoding": true
  },
  "scene_settings": {
    "is_enabled": true,
    "key_color": "SCENE_KEY_COLOR_UNSPECIFIED",
    "scene_id": "string"
  },
  "secure_link": true,
  "transcoding_settings": {
    "audio_bitrate": 32,
    "autostart": true,
    "drm": {
      "fairplay": true,
      "playready": true,
      "widevine": true
    },
    "enabled": true,
    "follow_source_fps": true,
    "gop": 25,
    "interlacing_filter_mode": "INTERLACING_FILTER_MODE_UNSPECIFIED",
    "key_frame_interval": 1,
    "level": 0.1,
    "llhls_settings": {
      "is_enabled": true,
      "part_size": 250,
      "segment_count": 10,
      "segment_size": 1
    },
    "low_latency": true,
    "profile": "TRANSCODING_PROFILE_UNSPECIFIED",
    "segment_size": 1,
    "tracking_pixel": true,
    "use_cdn": true,
    "video_representation_ids": [
      "string"
    ],
    "watermark": {
      "enabled": true,
      "url": "https://images.mls.mycujoo.tv/example.png"
    }
  }
}

Stream configuration

Properties

Name Type Required Restrictions Description
auto_enable_vpn_blocking boolean false none none
default boolean false none If set to true, this config will be the new default configuration.
dvr_settings mycujoo.streaming.v1.DVRSettings false none none
enable_pull_endpoint boolean false none none
enable_raw_pull_endpoint boolean false none none
id string false none none
is_system boolean false none none
name string false none none
recording_settings mycujoo.streaming.v1.RecordingSettings false none none
scene_settings mycujoo.streaming.v1.SceneSettings false none none
secure_link boolean false none Enable secure link functionality for the playlists.
See user guide for details.
transcoding_settings mycujoo.streaming.v1.TranscodingSettings false none none

mycujoo.streaming.v1.StreamConfigUpdate

{
  "auto_enable_vpn_blocking": true,
  "default": true,
  "dvr_settings": {
    "automatic_vod": true,
    "enabled": true,
    "stop_transcoding_full_dvr": true,
    "window_size": 1
  },
  "enable_pull_endpoint": true,
  "enable_raw_pull_endpoint": true,
  "name": "string",
  "recording_settings": {
    "autostart": true,
    "enabled": true,
    "record_during_transcoding": true
  },
  "scene_settings": {
    "is_enabled": true,
    "key_color": "SCENE_KEY_COLOR_UNSPECIFIED",
    "scene_id": "string"
  },
  "secure_link": true,
  "transcoding_settings": {
    "audio_bitrate": 32,
    "autostart": true,
    "drm": {
      "fairplay": true,
      "playready": true,
      "widevine": true
    },
    "enabled": true,
    "follow_source_fps": true,
    "gop": 25,
    "interlacing_filter_mode": "INTERLACING_FILTER_MODE_UNSPECIFIED",
    "key_frame_interval": 1,
    "level": 0.1,
    "llhls_settings": {
      "is_enabled": true,
      "part_size": 250,
      "segment_count": 10,
      "segment_size": 1
    },
    "low_latency": true,
    "profile": "TRANSCODING_PROFILE_UNSPECIFIED",
    "segment_size": 1,
    "tracking_pixel": true,
    "use_cdn": true,
    "video_representation_ids": [
      "string"
    ],
    "watermark": {
      "enabled": true,
      "url": "https://images.mls.mycujoo.tv/example.png"
    }
  }
}

Properties

Name Type Required Restrictions Description
auto_enable_vpn_blocking boolean false none none
default boolean false none If set to true, this config will be the new default configuration.
dvr_settings mycujoo.streaming.v1.DVRSettings false none none
enable_pull_endpoint boolean false none Enable the incoming feed to be pulled via a custom endpoint,
will be generated if set to true during creation.
enable_raw_pull_endpoint boolean false none none
name string false none none
recording_settings mycujoo.streaming.v1.RecordingSettings false none none
scene_settings mycujoo.streaming.v1.SceneSettings false none none
secure_link boolean false none Enable secure link functionality for the playlists.
See user guide for details.
transcoding_settings mycujoo.streaming.v1.TranscodingSettings false none none

mycujoo.streaming.v1.StreamPullConfig

{
  "config_id": "string",
  "video_representation_id": "string"
}

Properties

Name Type Required Restrictions Description
config_id string false none none
video_representation_id string false none Video representation ID associated with this endpoint.

mycujoo.streaming.v1.StreamPullEndpoint

{
  "config_id": "string",
  "endpoint": "string",
  "id": "string",
  "is_transcoded": true,
  "protocol": "PROTOCOL_UNSPECIFIED",
  "scene_settings": {
    "is_enabled": true,
    "key_color": "SCENE_KEY_COLOR_UNSPECIFIED",
    "scene_id": "string",
    "variables": {
      "property1": "string",
      "property2": "string"
    }
  },
  "video_representation_id": "string"
}

Properties

Name Type Required Restrictions Description
config_id string false none none
endpoint string false none none
id string false none none
is_transcoded boolean false none none
protocol mycujoo.streaming.v1.StreamPullEndpoint.Protocol false none none
scene_settings mycujoo.streaming.v1.EndpointSceneSettings false none none
video_representation_id string false none Video representation ID associated with this endpoint.

mycujoo.streaming.v1.StreamPullEndpoint.Protocol

"PROTOCOL_UNSPECIFIED"

Properties

Name Type Required Restrictions Description
anonymous string false none none

Enumerated Values

Property Value
anonymous PROTOCOL_UNSPECIFIED
anonymous PROTOCOL_RTMP
anonymous PROTOCOL_HLS
anonymous PROTOCOL_HTTP_FLV
anonymous PROTOCOL_SRT

mycujoo.streaming.v1.StreamPullIngestEndpoint

{
  "endpoint": "string",
  "id": "string",
  "name": "string",
  "protocol": "PULL_INGEST_PROTOCOL_UNSPECIFIED",
  "status": "PULL_INGEST_STATUS_UNSPECIFIED",
  "stream_id": "string"
}

Properties

Name Type Required Restrictions Description
endpoint string false none none
id string false none Unique id of the pull ingest endpoint.
name string false none none
protocol mycujoo.streaming.v1.PullIngestProtocol false none - PULL_INGEST_PROTOCOL_RTMP: RTMPS is simply RTMP with an added layer of security
for protected streaming. So they are the same protocol
status mycujoo.streaming.v1.PullIngestStatus false none none
stream_id string false none Unique id of the stream.

mycujoo.streaming.v1.StreamPushEndpoint

{
  "config_id": "qurnvkspnrjqk",
  "endpoint": "rtmp://something/live",
  "protocol": "RTMP",
  "stream_id": "abcdefghi"
}

Properties

Name Type Required Restrictions Description
added_latency_seconds integer(int32) false none none
config_id string false none none
endpoint string false none none
id string false none none
name string false none none
protocol mycujoo.streaming.v1.StreamPushEndpoint.Protocol false none none
scene_settings mycujoo.streaming.v1.EndpointSceneSettings false none none
status mycujoo.streaming.v1.StreamPushEndpoint.Status false none none
video_representation_id string false none Video representation ID associated with this endpoint.

mycujoo.streaming.v1.StreamPushEndpoint.Protocol

"PROTOCOL_UNSPECIFIED"

Properties

Name Type Required Restrictions Description
anonymous string false none none

Enumerated Values

Property Value
anonymous PROTOCOL_UNSPECIFIED
anonymous PROTOCOL_RTMP
anonymous PROTOCOL_HLS
anonymous PROTOCOL_SRT

mycujoo.streaming.v1.StreamPushEndpoint.Status

"STATUS_UNSPECIFIED"

Properties

Name Type Required Restrictions Description
anonymous string false none none

Enumerated Values

Property Value
anonymous STATUS_UNSPECIFIED
anonymous STATUS_RUNNING
anonymous STATUS_STOPPED
anonymous STATUS_FAILED
anonymous STATUS_SCHEDULED

mycujoo.streaming.v1.StreamStats

{
  "audio_bit_rate": 0,
  "audios": [
    {
      "bit_rate": 0,
      "channel_layout": "string",
      "channels": 0,
      "codec": "string",
      "codec_long_name": "string",
      "codec_type": "string",
      "index": 0,
      "profile": "string",
      "sample_fmt": "string",
      "sample_rate": 0
    }
  ],
  "connection_count": 0,
  "sample": {
    "audio_bit_rate": 0,
    "video_bit_rate": 0,
    "video_frame_rate": 0.1,
    "video_key_frame_consistent": true,
    "video_key_frame_interval": 0.1,
    "video_resolution": 0
  },
  "video_bit_rate": 0,
  "video_frame_rate": 0.1,
  "video_key_frame_consistent": true,
  "video_key_frame_interval": 0.1,
  "video_resolution": 0,
  "videos": [
    {
      "bit_rate": 0,
      "codec": "string",
      "codec_long_name": "string",
      "codec_type": "string",
      "frame_rate": 0.1,
      "height": 0,
      "index": 0,
      "level": 0,
      "pix_fmt": "string",
      "profile": "string",
      "resolution": 0,
      "start_pts": 0,
      "width": 0
    }
  ]
}

Properties

Name Type Required Restrictions Description
audio_bit_rate integer(int32) false none Audio bit rate in kbps.
This field is deprecated; Please use sample.audio_bit_rate field instead.
audios [mycujoo.streaming.v1.AudioStats] false none none
connection_count integer(int32) false none Amount of reconnections in this stream.
sample mycujoo.streaming.v1.SampleStats false none none
video_bit_rate integer(int32) false none Video bit rate in kbps.
This field is deprecated; Please use sample.video_bit_rate field instead.
video_frame_rate number(double) false none Video frame rate in frames per second (fps).
This field is deprecated; Please use sample.video_frame_rate field instead.
video_key_frame_consistent boolean false none Whether the key frame interval (KFI) is consistent with the previous data set.
This is to flag cases where due to change of frame rate, or encoder problems can trouble key frame generation.
This field is deprecated; Please use sample.video_key_frame_consistent field instead.
video_key_frame_interval number(double) false none Video key frame interval (KFI). A key frame is created in every interval.
This field is deprecated; Please use sample.video_key_frame_interval field instead.
video_resolution integer(int32) false none Video resolution in pixels being sent to the RTMP server.
This field is deprecated; Please use sample.video_resolution field instead.
videos [mycujoo.streaming.v1.VideoStats] false none none

mycujoo.streaming.v1.StreamStatsPoint

{
  "audio_bit_rate": 0,
  "connection_count": 0,
  "key_frame_consistent": true,
  "key_frame_interval": 0.1,
  "time": "2019-08-24T14:15:22Z",
  "video_bit_rate": 0,
  "video_fps": 0.1,
  "video_height": 0
}

Properties

Name Type Required Restrictions Description
audio_bit_rate integer(int32) false none none
connection_count integer(int32) false none none
key_frame_consistent boolean false none none
key_frame_interval number(float) false none none
time string(date-time) false none none
video_bit_rate integer(int32) false none none
video_fps number(float) false none none
video_height integer(int32) false none none

mycujoo.streaming.v1.StreamTestIamPermissionsRequest

{
  "permissions": [
    "projects.create",
    "projects.update",
    "projects.delete"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
}

Properties

Name Type Required Restrictions Description
permissions [string] true none none
resource mycujoo.auth.v1.Resource true none Resource object reference that is used to represent objects in the IAM system.

mycujoo.streaming.v1.StreamTestIamPermissionsResponse

{
  "permissions": [
    "projects.create",
    "projects.update"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
}

Properties

Name Type Required Restrictions Description
permissions [string] false none none
resource mycujoo.auth.v1.Resource false none Resource object reference that is used to represent objects in the IAM system.

mycujoo.streaming.v1.StreamUpdate

{
  "config_id": "string",
  "external_video_source": "string",
  "is_enabled": true,
  "is_public": true,
  "is_published": true,
  "media_source_id": "string",
  "project_id": "string",
  "pull_config": {
    "config_id": "string",
    "video_representation_id": "string"
  },
  "pull_ingest_id": "string",
  "push_endpoints": [
    {
      "config_id": "qurnvkspnrjqk",
      "endpoint": "rtmp://something/live",
      "protocol": "RTMP",
      "stream_id": "abcdefghi"
    }
  ],
  "region": "REGION_UNSPECIFIED",
  "title": "string",
  "type": "TYPE_UNSPECIFIED",
  "upload_id": "string",
  "vod_asset_id": "string"
}

Properties

Name Type Required Restrictions Description
config_id string false none none
external_video_source string false none Full URL to a valid external video file.
is_enabled boolean false none none
is_public boolean false none indicates if the stream should be considered public to the viewers.
is_published boolean false none none
media_source_id string false none Optional. Unique ID of the Media Source to attach to the stream. If left empty, a Media Source will be created automatically.
project_id string false none none
pull_config mycujoo.streaming.v1.StreamPullConfig false none none
pull_ingest_id string false none none
push_endpoints [mycujoo.streaming.v1.StreamPushEndpoint] false none none
region mycujoo.streaming.v1.Region false none none
title string false none title of the stream. Used to identify the stream.
type mycujoo.streaming.v1.Type false none none
upload_id string false none Use an uploaded video as a source for this stream.
vod_asset_id string false none Unique ID of the Media Source for this stream. Media Source contains the feed information, from which the stream can get its content.
It only can be set when the stream type is static. It turns immutable once the stream has been processed by the transcoder.

mycujoo.streaming.v1.StreamerDevice

{
  "flash_version": "string",
  "name": "string"
}

Properties

Name Type Required Restrictions Description
flash_version string false none none
name string false none none

mycujoo.streaming.v1.StreamingConfigTestIamPermissionsRequest

{
  "permissions": [
    "projects.create",
    "projects.update",
    "projects.delete"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
}

Properties

Name Type Required Restrictions Description
permissions [string] true none none
resource mycujoo.auth.v1.Resource true none Resource object reference that is used to represent objects in the IAM system.

mycujoo.streaming.v1.StreamingConfigTestIamPermissionsResponse

{
  "permissions": [
    "projects.create",
    "projects.update"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
}

Properties

Name Type Required Restrictions Description
permissions [string] false none none
resource mycujoo.auth.v1.Resource false none Resource object reference that is used to represent objects in the IAM system.

mycujoo.streaming.v1.StreamsPullIngestEndpoint

{
  "status": "PULL_INGEST_STATUS_UNSPECIFIED",
  "stream_id": "string"
}

Properties

Name Type Required Restrictions Description
status mycujoo.streaming.v1.PullIngestStatus false none none
stream_id string false none Unique id of the stream.

mycujoo.streaming.v1.Transcoding

{
  "id": "string",
  "progress": 100,
  "start_offset": 0,
  "state": "STATE_UNSPECIFIED",
  "status": "STATUS_UNSPECIFIED",
  "stream_id": "string"
}

Properties

Name Type Required Restrictions Description
id string false none none
progress integer(int32) false none Generated by the API, cannot be set.
Only valid when type = static.
start_offset integer(int32) false none Position in the source where transcoding should start from.
Only valid when type = static.
state mycujoo.streaming.v1.Transcoding.State false none State shows what the jobโ€™s state is at the moment.

Example:
- State(STATE_UNSPECIFIED): Job never has been started (gray)
- State(STATE_ACTIVE): Job at this moment is active (green)
- State(STATE_INACTIVE): Job at this moment is inactive (gray)
- State(STATE_SCHEDULED): Job has been scheduled and will be running in a few seconds (yellow)
status mycujoo.streaming.v1.Transcoding.Status false none Example:
- Status(STATUS_UNSPECIFIED): Job never has been started or at this moment the job's State is ACTIVE (gray)
- Status(STATUS_COMPLETED): Job was Completed in the last running (green)
- Status(STATUS_FAILED): Job was Failed in the last running (red)
- Status(STATUS_TERMINATED): Job was Terminated in the last running (orange)
stream_id string false none none

mycujoo.streaming.v1.Transcoding.State

"STATE_UNSPECIFIED"

State shows what the jobโ€™s state is at the moment.

Example: - State(STATE_UNSPECIFIED): Job never has been started (gray) - State(STATE_ACTIVE): Job at this moment is active (green) - State(STATE_INACTIVE): Job at this moment is inactive (gray) - State(STATE_SCHEDULED): Job has been scheduled and will be running in a few seconds (yellow)

Properties

Name Type Required Restrictions Description
anonymous string false none State shows what the jobโ€™s state is at the moment.

Example:
- State(STATE_UNSPECIFIED): Job never has been started (gray)
- State(STATE_ACTIVE): Job at this moment is active (green)
- State(STATE_INACTIVE): Job at this moment is inactive (gray)
- State(STATE_SCHEDULED): Job has been scheduled and will be running in a few seconds (yellow)

Enumerated Values

Property Value
anonymous STATE_UNSPECIFIED
anonymous STATE_ACTIVE
anonymous STATE_INACTIVE
anonymous STATE_SCHEDULED

mycujoo.streaming.v1.Transcoding.Status

"STATUS_UNSPECIFIED"

Status shows the last status of the operation before any termination signals If State is equal to STATE_UNSPECIFIED or STATE_ACTIVE then the Status would be STATUS_UNSPECIFIED

Properties

Name Type Required Restrictions Description
Status shows the last status of the operation before any termination signals
If State is equal to STATE_UNSPECIFIED or STATE_ACTIVE then the Status would be STATUS_UNSPECIFIED string false none Example:
- Status(STATUS_UNSPECIFIED): Job never has been started or at this moment the job's State is ACTIVE (gray)
- Status(STATUS_COMPLETED): Job was Completed in the last running (green)
- Status(STATUS_FAILED): Job was Failed in the last running (red)
- Status(STATUS_TERMINATED): Job was Terminated in the last running (orange)

Enumerated Values

Property Value
Status shows the last status of the operation before any termination signals
If State is equal to STATE_UNSPECIFIED or STATE_ACTIVE then the Status would be STATUS_UNSPECIFIED STATUS_UNSPECIFIED
Status shows the last status of the operation before any termination signals
If State is equal to STATE_UNSPECIFIED or STATE_ACTIVE then the Status would be STATUS_UNSPECIFIED STATUS_COMPLETED
Status shows the last status of the operation before any termination signals
If State is equal to STATE_UNSPECIFIED or STATE_ACTIVE then the Status would be STATUS_UNSPECIFIED STATUS_FAILED
Status shows the last status of the operation before any termination signals
If State is equal to STATE_UNSPECIFIED or STATE_ACTIVE then the Status would be STATUS_UNSPECIFIED STATUS_TERMINATED

mycujoo.streaming.v1.TranscodingImport

{
  "playlist_url": "string",
  "starting_segment": 0
}

Properties

Name Type Required Restrictions Description
playlist_url string false none none
starting_segment integer(int32) false none none

mycujoo.streaming.v1.TranscodingOffset

{
  "start_offset": 0
}

Properties

Name Type Required Restrictions Description
start_offset integer(int32) false none Position in the source where transcoding should start from.
Only valid when type = static.

mycujoo.streaming.v1.TranscodingSessionActivity

{
  "create_time": "2019-08-24T14:15:22Z",
  "duration": 0.1,
  "is_session_active": true,
  "session_id": "string",
  "source_ingest_ip": "string",
  "update_time": "2019-08-24T14:15:22Z"
}

Properties

Name Type Required Restrictions Description
create_time string(date-time) false none none
duration number(float) false none none
is_session_active boolean false none none
session_id string false none none
source_ingest_ip string false none none
update_time string(date-time) false none none

mycujoo.streaming.v1.TranscodingSettings

{
  "audio_bitrate": 32,
  "autostart": true,
  "drm": {
    "fairplay": true,
    "playready": true,
    "widevine": true
  },
  "enabled": true,
  "follow_source_fps": true,
  "gop": 25,
  "interlacing_filter_mode": "INTERLACING_FILTER_MODE_UNSPECIFIED",
  "key_frame_interval": 1,
  "level": 0.1,
  "llhls_settings": {
    "is_enabled": true,
    "part_size": 250,
    "segment_count": 10,
    "segment_size": 1
  },
  "low_latency": true,
  "profile": "TRANSCODING_PROFILE_UNSPECIFIED",
  "segment_size": 1,
  "tracking_pixel": true,
  "use_cdn": true,
  "video_representation_ids": [
    "string"
  ],
  "watermark": {
    "enabled": true,
    "url": "https://images.mls.mycujoo.tv/example.png"
  }
}

Properties

Name Type Required Restrictions Description
audio_bitrate integer(int32) false none none
autostart boolean false none Start transcoding when the stream has connected.
drm mycujoo.streaming.v1.DRMTechnologies false none none
enabled boolean false none none
follow_source_fps boolean false none none
gop integer(int32) false none none
interlacing_filter_mode mycujoo.streaming.v1.TranscodingSettings.InterlacingFilterMode false none none
key_frame_interval integer(int32) false none none
level number(double) false none none
llhls_settings mycujoo.streaming.v1.LLHLSSettings false none none
low_latency boolean false none add additional configuration option required for low-latency streaming. Note that quality will suffer in favor of speed.
profile mycujoo.streaming.v1.TranscodingSettings.TranscodingProfile false none none
segment_size integer(int32) false none Sets the maximum size a video segment can be.
Can never be less than GOP / Framerate (GOP 60 and framerate 30 = 2)
It belongs to the HLS specification and is used to determine the segment duration.
tracking_pixel boolean false none none
use_cdn boolean false none Use a CDN for the playlists.
If not set only the origin playlist will be sent.
Note that egress charges will be higher for origin traffic than CDN traffic.
Disable only when a custom CDN provider is used.
video_representation_ids [string] false none none
watermark mycujoo.streaming.v1.Watermark false none none

mycujoo.streaming.v1.TranscodingSettings.InterlacingFilterMode

"INTERLACING_FILTER_MODE_UNSPECIFIED"

Properties

Name Type Required Restrictions Description
anonymous string false none none

Enumerated Values

Property Value
anonymous INTERLACING_FILTER_MODE_UNSPECIFIED
anonymous INTERLACING_FILTER_MODE_INTERLACE
anonymous INTERLACING_FILTER_MODE_DEINTERLACE

mycujoo.streaming.v1.TranscodingSettings.TranscodingProfile

"TRANSCODING_PROFILE_UNSPECIFIED"

Properties

Name Type Required Restrictions Description
anonymous string false none none

Enumerated Values

Property Value
anonymous TRANSCODING_PROFILE_UNSPECIFIED
anonymous TRANSCODING_PROFILE_BASELINE
anonymous TRANSCODING_PROFILE_MAIN
anonymous TRANSCODING_PROFILE_HIGH

mycujoo.streaming.v1.Type

"TYPE_UNSPECIFIED"

Properties

Name Type Required Restrictions Description
anonymous string false none none

Enumerated Values

Property Value
anonymous TYPE_UNSPECIFIED
anonymous TYPE_LIVE
anonymous TYPE_STATIC

mycujoo.streaming.v1.UpdateClipResponse

{
  "clip": {
    "actual_duration": 0,
    "actual_position": 0,
    "created_time": "2019-08-24T14:15:22Z",
    "download": {
      "full_url": "string",
      "size": "string"
    },
    "download_state": "DOWNLOAD_STATE_UNSPECIFIED",
    "full_url": "string",
    "id": "string",
    "state": "CLIP_STATE_UNSPECIFIED",
    "stream_id": "string",
    "title": "string",
    "updated_time": "2019-08-24T14:15:22Z"
  }
}

Properties

Name Type Required Restrictions Description
clip mycujoo.streaming.v1.ClipResponse false none none

mycujoo.streaming.v1.UpdateConfigResponse

{
  "stream_config": {
    "auto_enable_vpn_blocking": true,
    "default": true,
    "dvr_settings": {
      "automatic_vod": true,
      "enabled": true,
      "stop_transcoding_full_dvr": true,
      "window_size": 1
    },
    "enable_pull_endpoint": true,
    "enable_raw_pull_endpoint": true,
    "id": "string",
    "is_system": true,
    "name": "string",
    "recording_settings": {
      "autostart": true,
      "enabled": true,
      "record_during_transcoding": true
    },
    "scene_settings": {
      "is_enabled": true,
      "key_color": "SCENE_KEY_COLOR_UNSPECIFIED",
      "scene_id": "string"
    },
    "secure_link": true,
    "transcoding_settings": {
      "audio_bitrate": 32,
      "autostart": true,
      "drm": {
        "fairplay": true,
        "playready": true,
        "widevine": true
      },
      "enabled": true,
      "follow_source_fps": true,
      "gop": 25,
      "interlacing_filter_mode": "INTERLACING_FILTER_MODE_UNSPECIFIED",
      "key_frame_interval": 1,
      "level": 0.1,
      "llhls_settings": {
        "is_enabled": true,
        "part_size": 250,
        "segment_count": 10,
        "segment_size": 1
      },
      "low_latency": true,
      "profile": "TRANSCODING_PROFILE_UNSPECIFIED",
      "segment_size": 1,
      "tracking_pixel": true,
      "use_cdn": true,
      "video_representation_ids": [
        "string"
      ],
      "watermark": {
        "enabled": true,
        "url": "https://images.mls.mycujoo.tv/example.png"
      }
    }
  }
}

Properties

Name Type Required Restrictions Description
stream_config mycujoo.streaming.v1.StreamConfig false none none

mycujoo.streaming.v1.UpdatePullEndpointResponse

{}

Properties

None

mycujoo.streaming.v1.UpdatePullIngestResponse

{
  "pull_ingest": {
    "endpoint": "string",
    "id": "string",
    "name": "string",
    "protocol": "PULL_INGEST_PROTOCOL_UNSPECIFIED",
    "streams": [
      {
        "status": "PULL_INGEST_STATUS_UNSPECIFIED",
        "stream_id": "string"
      }
    ]
  }
}

Properties

Name Type Required Restrictions Description
pull_ingest mycujoo.streaming.v1.PullIngestEndpoint false none none

mycujoo.streaming.v1.UpdatePushEndpointResponse

{}

Properties

None

mycujoo.streaming.v1.UpdateSecureKeyResponse

{
  "secure_key": {
    "key": "string",
    "version": "string"
  }
}

Properties

Name Type Required Restrictions Description
secure_key mycujoo.streaming.v1.SecureKey false none none

mycujoo.streaming.v1.UpdateStreamResponse

{
  "stream": {
    "config": {
      "auto_enable_vpn_blocking": true,
      "default": true,
      "dvr_settings": {
        "automatic_vod": true,
        "enabled": true,
        "stop_transcoding_full_dvr": true,
        "window_size": 1
      },
      "enable_pull_endpoint": true,
      "enable_raw_pull_endpoint": true,
      "id": "string",
      "is_system": true,
      "name": "string",
      "recording_settings": {
        "autostart": true,
        "enabled": true,
        "record_during_transcoding": true
      },
      "scene_settings": {
        "is_enabled": true,
        "key_color": "SCENE_KEY_COLOR_UNSPECIFIED",
        "scene_id": "string"
      },
      "secure_link": true,
      "transcoding_settings": {
        "audio_bitrate": 32,
        "autostart": true,
        "drm": {
          "fairplay": true,
          "playready": true,
          "widevine": true
        },
        "enabled": true,
        "follow_source_fps": true,
        "gop": 25,
        "interlacing_filter_mode": "INTERLACING_FILTER_MODE_UNSPECIFIED",
        "key_frame_interval": 1,
        "level": 0.1,
        "llhls_settings": {
          "is_enabled": true,
          "part_size": 250,
          "segment_count": 10,
          "segment_size": 1
        },
        "low_latency": true,
        "profile": "TRANSCODING_PROFILE_UNSPECIFIED",
        "segment_size": 1,
        "tracking_pixel": true,
        "use_cdn": true,
        "video_representation_ids": [
          "string"
        ],
        "watermark": {
          "enabled": true,
          "url": "https://images.mls.mycujoo.tv/example.png"
        }
      }
    },
    "config_id": "string",
    "connection_time_seconds": 0,
    "endpoint": "string",
    "external_video_source": "string",
    "id": "string",
    "incoming_feed": {
      "device": {
        "flash_version": "string",
        "name": "string"
      },
      "http_flv_endpoint": "string",
      "is_active": true,
      "protocol": "INGEST_PROTOCOL_UNSPECIFIED",
      "session_id": "string"
    },
    "incoming_feed_flv": "string",
    "is_active": true,
    "is_enabled": true,
    "is_public": true,
    "is_published": true,
    "key": "string",
    "media_source_id": "string",
    "playlists": [
      {
        "id": "string",
        "is_enabled": true,
        "is_transcoded": true,
        "is_updating": true,
        "is_vod": true,
        "protocol": "PROTOCOL_UNSPECIFIED",
        "type": "TYPE_UNSPECIFIED",
        "url": "string"
      }
    ],
    "project_id": "string",
    "pull_endpoints": [
      {
        "config_id": "string",
        "endpoint": "string",
        "id": "string",
        "is_transcoded": true,
        "protocol": "PROTOCOL_UNSPECIFIED",
        "scene_settings": {
          "is_enabled": true,
          "key_color": "SCENE_KEY_COLOR_UNSPECIFIED",
          "scene_id": "string",
          "variables": {
            "property1": "string",
            "property2": "string"
          }
        },
        "video_representation_id": "string"
      }
    ],
    "pull_ingest_id": "string",
    "push_endpoints": [
      {
        "config_id": "qurnvkspnrjqk",
        "endpoint": "rtmp://something/live",
        "protocol": "RTMP",
        "stream_id": "abcdefghi"
      }
    ],
    "push_ingest_endpoints": [
      {
        "endpoint": "string",
        "in_use": true,
        "protocol": "PUSH_INGEST_PROTOCOL_UNSPECIFIED",
        "region": "REGION_UNSPECIFIED",
        "secure_endpoint": "string",
        "secure_uri": "string",
        "support_tls": true,
        "uri": "string"
      }
    ],
    "region": "REGION_UNSPECIFIED",
    "stats": {
      "audio_bit_rate": 0,
      "audios": [
        {
          "bit_rate": 0,
          "channel_layout": "string",
          "channels": 0,
          "codec": "string",
          "codec_long_name": "string",
          "codec_type": "string",
          "index": 0,
          "profile": "string",
          "sample_fmt": "string",
          "sample_rate": 0
        }
      ],
      "connection_count": 0,
      "sample": {
        "audio_bit_rate": 0,
        "video_bit_rate": 0,
        "video_frame_rate": 0.1,
        "video_key_frame_consistent": true,
        "video_key_frame_interval": 0.1,
        "video_resolution": 0
      },
      "video_bit_rate": 0,
      "video_frame_rate": 0.1,
      "video_key_frame_consistent": true,
      "video_key_frame_interval": 0.1,
      "video_resolution": 0,
      "videos": [
        {
          "bit_rate": 0,
          "codec": "string",
          "codec_long_name": "string",
          "codec_type": "string",
          "frame_rate": 0.1,
          "height": 0,
          "index": 0,
          "level": 0,
          "pix_fmt": "string",
          "profile": "string",
          "resolution": 0,
          "start_pts": 0,
          "width": 0
        }
      ]
    },
    "title": "string",
    "transcoding_state": "STATE_UNSPECIFIED",
    "transcoding_time_seconds": 0,
    "type": "TYPE_UNSPECIFIED",
    "upload_id": "string",
    "vod_asset_id": "string"
  }
}

Properties

Name Type Required Restrictions Description
stream mycujoo.streaming.v1.Stream false none none

mycujoo.streaming.v1.UpdateVideoRepresentationResponse

{
  "video_representation": {
    "bitrate": 100,
    "framerate": 24,
    "height": 240,
    "id": "string",
    "is_enabled": true,
    "is_system": true,
    "name": "string",
    "width": 320
  }
}

Properties

Name Type Required Restrictions Description
video_representation mycujoo.streaming.v1.VideoRepresentation false none none

mycujoo.streaming.v1.VideoRepresentation

{
  "bitrate": 100,
  "framerate": 24,
  "height": 240,
  "id": "string",
  "is_enabled": true,
  "is_system": true,
  "name": "string",
  "width": 320
}

Properties

Name Type Required Restrictions Description
bitrate integer(int32) false none none
framerate integer(int32) false none none
height integer(int32) false none none
id string false none none
is_enabled boolean false none none
is_system boolean false none none
name string false none none
width integer(int32) false none none

mycujoo.streaming.v1.VideoRepresentationTestIamPermissionsRequest

{
  "permissions": [
    "projects.create",
    "projects.update",
    "projects.delete"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
}

Properties

Name Type Required Restrictions Description
permissions [string] true none none
resource mycujoo.auth.v1.Resource true none Resource object reference that is used to represent objects in the IAM system.

mycujoo.streaming.v1.VideoRepresentationTestIamPermissionsResponse

{
  "permissions": [
    "projects.create",
    "projects.update"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
}

Properties

Name Type Required Restrictions Description
permissions [string] false none none
resource mycujoo.auth.v1.Resource false none Resource object reference that is used to represent objects in the IAM system.

mycujoo.streaming.v1.VideoRepresentationUpdate

{
  "bitrate": 100,
  "framerate": 24,
  "height": 240,
  "is_enabled": true,
  "name": "string",
  "width": 320
}

Properties

Name Type Required Restrictions Description
bitrate integer(int32) false none none
framerate integer(int32) false none none
height integer(int32) false none none
is_enabled boolean false none none
name string false none none
width integer(int32) false none none

mycujoo.streaming.v1.VideoStats

{
  "bit_rate": 0,
  "codec": "string",
  "codec_long_name": "string",
  "codec_type": "string",
  "frame_rate": 0.1,
  "height": 0,
  "index": 0,
  "level": 0,
  "pix_fmt": "string",
  "profile": "string",
  "resolution": 0,
  "start_pts": 0,
  "width": 0
}

Properties

Name Type Required Restrictions Description
bit_rate integer(int32) false none none
codec string false none none
codec_long_name string false none none
codec_type string false none none
frame_rate number(float) false none none
height integer(int32) false none none
index integer(int32) false none none
level integer(int32) false none none
pix_fmt string false none none
profile string false none none
resolution integer(int32) false none none
start_pts integer(int32) false none none
width integer(int32) false none none

mycujoo.streaming.v1.Watermark

{
  "enabled": true,
  "url": "https://images.mls.mycujoo.tv/example.png"
}

Properties

Name Type Required Restrictions Description
enabled boolean false none none
height integer(int32) false none none
position_preset mycujoo.streaming.v1.Watermark.Position false none none
url string false none none
width integer(int32) false none none

mycujoo.streaming.v1.Watermark.Position

"POSITION_UNSPECIFIED"

Properties

Name Type Required Restrictions Description
anonymous string false none none

Enumerated Values

Property Value
anonymous POSITION_UNSPECIFIED
anonymous POSITION_TOP_LEFT
anonymous POSITION_TOP_RIGHT
anonymous POSITION_BOTTOM_LEFT
anonymous POSITION_BOTTOM_RIGHT
anonymous POSITION_TOP_CENTER
anonymous POSITION_BOTTOM_CENTER
anonymous POSITION_CENTER

mycujoo.subscriptions.v1beta1.BatchGetPackagesRequest

{
  "ids": [
    "string"
  ]
}

Properties

Name Type Required Restrictions Description
ids [string] true none none

mycujoo.subscriptions.v1beta1.BatchGetPackagesResponse

{
  "packages": [
    {
      "apple_app_store_product_id": "string",
      "concurrency_limit": 0,
      "contents": [
        {
          "id": "string",
          "priority": 0,
          "type": "string"
        }
      ],
      "create_time": "2019-08-24T14:15:22Z",
      "description": "string",
      "end_time": "2019-08-24T14:15:22Z",
      "google_play_sku": "string",
      "hero_image_asset_id": "string",
      "id": "string",
      "is_geoblocked": true,
      "locale_overrides": [
        {
          "description": "string",
          "language_code": "string",
          "name": "string",
          "short_name": "string"
        }
      ],
      "logo_asset_id": "string",
      "name": "string",
      "price": {
        "currency_code": "string",
        "nanos": 0,
        "units": "string"
      },
      "price_msrp": {
        "currency_code": "string",
        "nanos": 0,
        "units": "string"
      },
      "price_per_item": {
        "currency_code": "string",
        "nanos": 0,
        "units": "string"
      },
      "priority": 0,
      "short_name": "string",
      "start_time": "2019-08-24T14:15:22Z",
      "state": "STATE_UNSPECIFIED",
      "term": {
        "factor": 0,
        "period": "CALENDAR_PERIOD_UNSPECIFIED"
      },
      "type": "TYPE_UNSPECIFIED"
    }
  ]
}

Properties

Name Type Required Restrictions Description
packages [mycujoo.subscriptions.v1beta1.Package] false none [Package is a access protected one or many contents that user can pay for.]

mycujoo.subscriptions.v1beta1.CreatePackageRequest

{
  "apple_app_store_product_id": "string",
  "concurrency_limit": 0,
  "contents": [
    {
      "id": "string",
      "priority": 0,
      "type": "string"
    }
  ],
  "description": "string",
  "end_time": "2019-08-24T14:15:22Z",
  "google_play_sku": "string",
  "hero_image_asset_id": "string",
  "is_geoblocked": true,
  "locale_overrides": [
    {
      "description": "string",
      "language_code": "string",
      "name": "string",
      "short_name": "string"
    }
  ],
  "logo_asset_id": "string",
  "name": "string",
  "price": {
    "currency_code": "string",
    "nanos": 0,
    "units": "string"
  },
  "price_msrp": {
    "currency_code": "string",
    "nanos": 0,
    "units": "string"
  },
  "price_per_item": {
    "currency_code": "string",
    "nanos": 0,
    "units": "string"
  },
  "priority": 0,
  "short_name": "string",
  "start_time": "2019-08-24T14:15:22Z",
  "state": "STATE_UNSPECIFIED",
  "term": {
    "factor": 0,
    "period": "CALENDAR_PERIOD_UNSPECIFIED"
  },
  "type": "TYPE_UNSPECIFIED"
}

Properties

Name Type Required Restrictions Description
apple_app_store_product_id string false none none
concurrency_limit integer(int32) false none The number of video streams that a specific user can watch at any given time.
Defaults to 0 which means that there is no limit.
contents [mycujoo.subscriptions.v1beta1.Package.Content] true none none
description string false none Description of the package that holds more detailed information about what
package provides.
end_time string(date-time) false none none
google_play_sku string false none none
hero_image_asset_id string false none ID of the assets used for hero image. Can be retrieved from assets service.
is_geoblocked boolean true none Whether this package is allowed/not allowed to purchase in a set of
countries. If the value is 'true' then the geoblocking settings can be
retrived from Geofence service using this package ID.
locale_overrides [mycujoo.subscriptions.v1beta1.Package.LocaleOverride] false none Contains list of translated fields per language that can override
defaults.
logo_asset_id string false none ID of the assets used for logo. Can be retrieved from assets service.
name string true none Full name of the package that can be used as a page title.
price google.type.Money true none Represents an amount of money with its currency type.
price_msrp google.type.Money false none Represents an amount of money with its currency type.
price_per_item google.type.Money false none Represents an amount of money with its currency type.
priority integer(int32) true none Priority in which packages for the same content are organised
The lower value will keep the package on top. Defaults to 0.
short_name string false none Short name of the package that can be used when there is not enough space
to show full name.
start_time string(date-time) false none none
state mycujoo.subscriptions.v1beta1.Package.State true none State holds available states of the package.

- STATE_HIDDEN: Hidden means that the package is not available to be bought anywhere.
- STATE_UNLISTED: Unlisted means that the package is available for purchase but should not
be visible for the users.
- STATE_PUBLISHED: Published means that the package is fully available for purchase.
term mycujoo.subscriptions.v1beta1.Package.Term false none Term holds the combination of period and factor
e.q. if period is WEEK and factor is 2, it translate to every 2 weeks.
type mycujoo.subscriptions.v1beta1.Package.Type true none Type holds available types for the package.

- TYPE_BUNDLE: Bundle type is when access to the content never expires.
- TYPE_SUBSCRIPTION: Subscription type is temporary access based on recurring payments.
Recurring payments are done on basis set by 'term_seconds' field.
- TYPE_TIMEPASS: Timepass type is a time limited access to the content.
It is same as bundle type but with expiration date.
- TYPE_PPV: PPV - Pay Per View. This is a one-time purchase for a single MCLS event, with lifetime access once purchased.

mycujoo.subscriptions.v1beta1.CreatePackageResponse

{
  "package": {
    "apple_app_store_product_id": "string",
    "concurrency_limit": 0,
    "contents": [
      {
        "id": "string",
        "priority": 0,
        "type": "string"
      }
    ],
    "create_time": "2019-08-24T14:15:22Z",
    "description": "string",
    "end_time": "2019-08-24T14:15:22Z",
    "google_play_sku": "string",
    "hero_image_asset_id": "string",
    "id": "string",
    "is_geoblocked": true,
    "locale_overrides": [
      {
        "description": "string",
        "language_code": "string",
        "name": "string",
        "short_name": "string"
      }
    ],
    "logo_asset_id": "string",
    "name": "string",
    "price": {
      "currency_code": "string",
      "nanos": 0,
      "units": "string"
    },
    "price_msrp": {
      "currency_code": "string",
      "nanos": 0,
      "units": "string"
    },
    "price_per_item": {
      "currency_code": "string",
      "nanos": 0,
      "units": "string"
    },
    "priority": 0,
    "short_name": "string",
    "start_time": "2019-08-24T14:15:22Z",
    "state": "STATE_UNSPECIFIED",
    "term": {
      "factor": 0,
      "period": "CALENDAR_PERIOD_UNSPECIFIED"
    },
    "type": "TYPE_UNSPECIFIED"
  }
}

Properties

Name Type Required Restrictions Description
package mycujoo.subscriptions.v1beta1.Package false none Package is a access protected one or many contents that user can pay for.

mycujoo.subscriptions.v1beta1.DeletePackageResponse

{}

Properties

None

mycujoo.subscriptions.v1beta1.GetPackageIamPolicyResponse

{
  "etag": "string",
  "policy": {
    "bindings": [
      {
        "account_ids": [
          "2GzbST9DaEPsNcDTaW30GWnfZyw",
          "2GzbTHf7FfMyGv2F71FWwGRzKWb"
        ],
        "role_id": "owner"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "projects.admin"
      },
      {
        "account_ids": [
          "2GzbXfLtstLUn0d9HoaQTvSfSkf"
        ],
        "role_id": "accounts.admin"
      }
    ]
  },
  "resource_hierarchy": [
    {
      "id": "elevendata",
      "type": "project"
    }
  ],
  "resource_title": "string"
}

Properties

Name Type Required Restrictions Description
etag string(byte) false none none
policy mycujoo.auth.v1.Policy false none Authorization policy.
resource_hierarchy [mycujoo.auth.v1.Resource] false none [Resource object reference that is used to represent objects in the IAM system.]
resource_title string false none none

mycujoo.subscriptions.v1beta1.GetPackageResponse

{
  "package": {
    "apple_app_store_product_id": "string",
    "concurrency_limit": 0,
    "contents": [
      {
        "id": "string",
        "priority": 0,
        "type": "string"
      }
    ],
    "create_time": "2019-08-24T14:15:22Z",
    "description": "string",
    "end_time": "2019-08-24T14:15:22Z",
    "google_play_sku": "string",
    "hero_image_asset_id": "string",
    "id": "string",
    "is_geoblocked": true,
    "locale_overrides": [
      {
        "description": "string",
        "language_code": "string",
        "name": "string",
        "short_name": "string"
      }
    ],
    "logo_asset_id": "string",
    "name": "string",
    "price": {
      "currency_code": "string",
      "nanos": 0,
      "units": "string"
    },
    "price_msrp": {
      "currency_code": "string",
      "nanos": 0,
      "units": "string"
    },
    "price_per_item": {
      "currency_code": "string",
      "nanos": 0,
      "units": "string"
    },
    "priority": 0,
    "short_name": "string",
    "start_time": "2019-08-24T14:15:22Z",
    "state": "STATE_UNSPECIFIED",
    "term": {
      "factor": 0,
      "period": "CALENDAR_PERIOD_UNSPECIFIED"
    },
    "type": "TYPE_UNSPECIFIED"
  }
}

Properties

Name Type Required Restrictions Description
package mycujoo.subscriptions.v1beta1.Package false none Package is a access protected one or many contents that user can pay for.

mycujoo.subscriptions.v1beta1.ListPackagesRequest.Include

"INCLUDE_UNSPECIFIED"

An enum value that indicates additional data to be included in the response

Properties

Name Type Required Restrictions Description
An enum value that indicates additional data to be included in the response string false none - INCLUDE_TOTAL_SIZE: When included, response will contain metadata about total number of
available results irrespective of pagination

Enumerated Values

Property Value
An enum value that indicates additional data to be included in the response INCLUDE_UNSPECIFIED
An enum value that indicates additional data to be included in the response INCLUDE_TOTAL_SIZE

mycujoo.subscriptions.v1beta1.ListPackagesRequest.Order

"ORDER_UNSPECIFIED"

An enum value that indicates results order in the response

Properties

Name Type Required Restrictions Description
An enum value that indicates results order in the response string false none - ORDER_UNSPECIFIED: When order is unspecified it defaults to create time descending
- ORDER_CREATE_TIME_ASC: Results sorted by time of creation ascending
- ORDER_CREATE_TIME_DESC: Results sorted by time of creation descending

Enumerated Values

Property Value
An enum value that indicates results order in the response ORDER_UNSPECIFIED
An enum value that indicates results order in the response ORDER_CREATE_TIME_ASC
An enum value that indicates results order in the response ORDER_CREATE_TIME_DESC

mycujoo.subscriptions.v1beta1.ListPackagesResponse

{
  "next_page_token": "string",
  "packages": [
    {
      "apple_app_store_product_id": "string",
      "concurrency_limit": 0,
      "contents": [
        {
          "id": "string",
          "priority": 0,
          "type": "string"
        }
      ],
      "create_time": "2019-08-24T14:15:22Z",
      "description": "string",
      "end_time": "2019-08-24T14:15:22Z",
      "google_play_sku": "string",
      "hero_image_asset_id": "string",
      "id": "string",
      "is_geoblocked": true,
      "locale_overrides": [
        {
          "description": "string",
          "language_code": "string",
          "name": "string",
          "short_name": "string"
        }
      ],
      "logo_asset_id": "string",
      "name": "string",
      "price": {
        "currency_code": "string",
        "nanos": 0,
        "units": "string"
      },
      "price_msrp": {
        "currency_code": "string",
        "nanos": 0,
        "units": "string"
      },
      "price_per_item": {
        "currency_code": "string",
        "nanos": 0,
        "units": "string"
      },
      "priority": 0,
      "short_name": "string",
      "start_time": "2019-08-24T14:15:22Z",
      "state": "STATE_UNSPECIFIED",
      "term": {
        "factor": 0,
        "period": "CALENDAR_PERIOD_UNSPECIFIED"
      },
      "type": "TYPE_UNSPECIFIED"
    }
  ],
  "total_size": 0
}

Properties

Name Type Required Restrictions Description
next_page_token string false none none
packages [mycujoo.subscriptions.v1beta1.Package] false none [Package is a access protected one or many contents that user can pay for.]
total_size integer(int32) false none The total amount of items in the list irrespective of pagination.
Will be present only when request 'include' field ask for it.

mycujoo.subscriptions.v1beta1.Package

{
  "apple_app_store_product_id": "string",
  "concurrency_limit": 0,
  "contents": [
    {
      "id": "string",
      "priority": 0,
      "type": "string"
    }
  ],
  "create_time": "2019-08-24T14:15:22Z",
  "description": "string",
  "end_time": "2019-08-24T14:15:22Z",
  "google_play_sku": "string",
  "hero_image_asset_id": "string",
  "id": "string",
  "is_geoblocked": true,
  "locale_overrides": [
    {
      "description": "string",
      "language_code": "string",
      "name": "string",
      "short_name": "string"
    }
  ],
  "logo_asset_id": "string",
  "name": "string",
  "price": {
    "currency_code": "string",
    "nanos": 0,
    "units": "string"
  },
  "price_msrp": {
    "currency_code": "string",
    "nanos": 0,
    "units": "string"
  },
  "price_per_item": {
    "currency_code": "string",
    "nanos": 0,
    "units": "string"
  },
  "priority": 0,
  "short_name": "string",
  "start_time": "2019-08-24T14:15:22Z",
  "state": "STATE_UNSPECIFIED",
  "term": {
    "factor": 0,
    "period": "CALENDAR_PERIOD_UNSPECIFIED"
  },
  "type": "TYPE_UNSPECIFIED"
}

Package is a access protected one or many contents that user can pay for.

Properties

Name Type Required Restrictions Description
apple_app_store_product_id string false none none
concurrency_limit integer(int32) false none The number of video streams that a specific user can watch at any given time.
Defaults to 0 which means that there is no limit.
contents [mycujoo.subscriptions.v1beta1.Package.Content] true none none
create_time string(date-time) true none Time of creation. Cannot be set.
description string false none Description of the package that holds more detailed information about what
package provides.
end_time string(date-time) false none none
google_play_sku string false none none
hero_image_asset_id string false none ID of the assets used for hero image. Can be retrieved from assets service.
id string false read-only Auto generated unique ID of the package. Cannot be set.
is_geoblocked boolean true none Whether this package is allowed/not allowed to purchase in a set of
countries. If the value is 'true' then the geoblocking settings can be
retrived from Geofence service using this package ID.
locale_overrides [mycujoo.subscriptions.v1beta1.Package.LocaleOverride] false none Contains list of translated fields per language that can override
defaults.
logo_asset_id string false none ID of the assets used for logo. Can be retrieved from assets service.
name string true none Full name of the package that can be used as a page title.
price google.type.Money true none Represents an amount of money with its currency type.
price_msrp google.type.Money false none Represents an amount of money with its currency type.
price_per_item google.type.Money false none Represents an amount of money with its currency type.
priority integer(int32) true none Priority in which packages for the same content are organised
The lower value will keep the package on top. Defaults to 0.
short_name string false none Short name of the package that can be used when there is not enough space
to show full name.
start_time string(date-time) false none none
state mycujoo.subscriptions.v1beta1.Package.State true none State holds available states of the package.

- STATE_HIDDEN: Hidden means that the package is not available to be bought anywhere.
- STATE_UNLISTED: Unlisted means that the package is available for purchase but should not
be visible for the users.
- STATE_PUBLISHED: Published means that the package is fully available for purchase.
term mycujoo.subscriptions.v1beta1.Package.Term false none Term holds the combination of period and factor
e.q. if period is WEEK and factor is 2, it translate to every 2 weeks.
type mycujoo.subscriptions.v1beta1.Package.Type true none Type holds available types for the package.

- TYPE_BUNDLE: Bundle type is when access to the content never expires.
- TYPE_SUBSCRIPTION: Subscription type is temporary access based on recurring payments.
Recurring payments are done on basis set by 'term_seconds' field.
- TYPE_TIMEPASS: Timepass type is a time limited access to the content.
It is same as bundle type but with expiration date.
- TYPE_PPV: PPV - Pay Per View. This is a one-time purchase for a single MCLS event, with lifetime access once purchased.

mycujoo.subscriptions.v1beta1.Package.Content

{
  "id": "string",
  "priority": 0,
  "type": "string"
}

Represents content available for purchase

Properties

Name Type Required Restrictions Description
id string true none none
priority integer(int32) true none Priority is used to define the order of list of contents.
The lower value will keep the content on top. Defaults to 0.
type string true none none

mycujoo.subscriptions.v1beta1.Package.LocaleOverride

{
  "description": "string",
  "language_code": "string",
  "name": "string",
  "short_name": "string"
}

LocaleOverride holds localised fields with the language code

Properties

Name Type Required Restrictions Description
description string false none Same as description but localised.
language_code string false none The BCP-47 language code.
name string false none Same as name but localised.
short_name string false none Same as short_name but localised.

mycujoo.subscriptions.v1beta1.Package.State

"STATE_UNSPECIFIED"

State holds available states of the package.

Properties

Name Type Required Restrictions Description
anonymous string false none State holds available states of the package.

- STATE_HIDDEN: Hidden means that the package is not available to be bought anywhere.
- STATE_UNLISTED: Unlisted means that the package is available for purchase but should not
be visible for the users.
- STATE_PUBLISHED: Published means that the package is fully available for purchase.

Enumerated Values

Property Value
anonymous STATE_UNSPECIFIED
anonymous STATE_HIDDEN
anonymous STATE_UNLISTED
anonymous STATE_PUBLISHED

mycujoo.subscriptions.v1beta1.Package.Term

{
  "factor": 0,
  "period": "CALENDAR_PERIOD_UNSPECIFIED"
}

Term holds the combination of period and factor e.q. if period is WEEK and factor is 2, it translate to every 2 weeks.

Properties

Name Type Required Restrictions Description
factor integer(int32) false none The multiplication of a time period. Cannot be 0.
period google.type.CalendarPeriod false none A CalendarPeriod represents the abstract concept of a time period that has
a canonical start. Grammatically, "the start of the current
CalendarPeriod." All calendar times begin at midnight UTC.

- CALENDAR_PERIOD_UNSPECIFIED: Undefined period, raises an error.
- DAY: A day.
- WEEK: A week. Weeks begin on Monday, following
ISO 8601.
- FORTNIGHT: A fortnight. The first calendar fortnight of the year begins at the start
of week 1 according to
ISO 8601.
- MONTH: A month.
- QUARTER: A quarter. Quarters start on dates 1-Jan, 1-Apr, 1-Jul, and 1-Oct of each
year.
- HALF: A half-year. Half-years start on dates 1-Jan and 1-Jul.
- YEAR: A year.

mycujoo.subscriptions.v1beta1.Package.Type

"TYPE_UNSPECIFIED"

Type holds available types for the package.

Properties

Name Type Required Restrictions Description
anonymous string false none Type holds available types for the package.

- TYPE_BUNDLE: Bundle type is when access to the content never expires.
- TYPE_SUBSCRIPTION: Subscription type is temporary access based on recurring payments.
Recurring payments are done on basis set by 'term_seconds' field.
- TYPE_TIMEPASS: Timepass type is a time limited access to the content.
It is same as bundle type but with expiration date.
- TYPE_PPV: PPV - Pay Per View. This is a one-time purchase for a single MCLS event, with lifetime access once purchased.

Enumerated Values

Property Value
anonymous TYPE_UNSPECIFIED
anonymous TYPE_BUNDLE
anonymous TYPE_SUBSCRIPTION
anonymous TYPE_TIMEPASS
anonymous TYPE_PPV

mycujoo.subscriptions.v1beta1.SetPackageIamPolicyResponse

{}

Properties

None

mycujoo.subscriptions.v1beta1.TestIamPermissionsRequest

{
  "permissions": [
    "projects.create",
    "projects.update",
    "projects.delete"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
}

Properties

Name Type Required Restrictions Description
permissions [string] true none none
resource mycujoo.auth.v1.Resource true none Resource object reference that is used to represent objects in the IAM system.

mycujoo.subscriptions.v1beta1.TestIamPermissionsResponse

{
  "permissions": [
    "projects.create",
    "projects.update"
  ],
  "resource": {
    "id": "esgp",
    "type": "organization"
  }
}

Properties

Name Type Required Restrictions Description
permissions [string] false none none
resource mycujoo.auth.v1.Resource false none Resource object reference that is used to represent objects in the IAM system.

mycujoo.subscriptions.v1beta1.UpdatePackageRequest.UpdateFields

{
  "apple_app_store_product_id": "string",
  "concurrency_limit": 0,
  "contents": [
    {
      "id": "string",
      "priority": 0,
      "type": "string"
    }
  ],
  "description": "string",
  "end_time": "2019-08-24T14:15:22Z",
  "google_play_sku": "string",
  "hero_image_asset_id": "string",
  "is_geoblocked": true,
  "locale_overrides": [
    {
      "description": "string",
      "language_code": "string",
      "name": "string",
      "short_name": "string"
    }
  ],
  "logo_asset_id": "string",
  "name": "string",
  "price": {
    "currency_code": "string",
    "nanos": 0,
    "units": "string"
  },
  "price_msrp": {
    "currency_code": "string",
    "nanos": 0,
    "units": "string"
  },
  "price_per_item": {
    "currency_code": "string",
    "nanos": 0,
    "units": "string"
  },
  "priority": 0,
  "short_name": "string",
  "start_time": "2019-08-24T14:15:22Z",
  "state": "STATE_UNSPECIFIED",
  "term": {
    "factor": 0,
    "period": "CALENDAR_PERIOD_UNSPECIFIED"
  },
  "type": "TYPE_UNSPECIFIED"
}

Properties

Name Type Required Restrictions Description
apple_app_store_product_id string false none none
concurrency_limit integer(int32) false none The number of video streams that a specific user can watch at any given time.
Defaults to 0 which means that there is no limit.
contents [mycujoo.subscriptions.v1beta1.Package.Content] false none none
description string false none Description of the package that holds more detailed information about
what package provides.
end_time string(date-time) false none none
google_play_sku string false none none
hero_image_asset_id string false none ID of the assets used for hero image. Can be retrieved from assets
service.
is_geoblocked boolean false none Whether this package is allowed/not allowed to purchase in a set of
countries. If the value is 'true' then the geoblocking settings can be
retrived from Geofence service using this package ID.
locale_overrides [mycujoo.subscriptions.v1beta1.Package.LocaleOverride] false none Contains list of translated fields per language that can override
defaults.
logo_asset_id string false none ID of the assets used for logo. Can be retrieved from assets service.
name string false none Full name of the package that can be used as a page title.
price google.type.Money false none Represents an amount of money with its currency type.
price_msrp google.type.Money false none Represents an amount of money with its currency type.
price_per_item google.type.Money false none Represents an amount of money with its currency type.
priority integer(int32) false none Priority in which packages for the same content are organised
The lower value will keep the package on top. Defaults to 0.
short_name string false none Short name of the package that can be used when there is not enough space
to show full name.
start_time string(date-time) false none none
state mycujoo.subscriptions.v1beta1.Package.State false none State holds available states of the package.

- STATE_HIDDEN: Hidden means that the package is not available to be bought anywhere.
- STATE_UNLISTED: Unlisted means that the package is available for purchase but should not
be visible for the users.
- STATE_PUBLISHED: Published means that the package is fully available for purchase.
term mycujoo.subscriptions.v1beta1.Package.Term false none Term holds the combination of period and factor
e.q. if period is WEEK and factor is 2, it translate to every 2 weeks.
type mycujoo.subscriptions.v1beta1.Package.Type false none Type holds available types for the package.

- TYPE_BUNDLE: Bundle type is when access to the content never expires.
- TYPE_SUBSCRIPTION: Subscription type is temporary access based on recurring payments.
Recurring payments are done on basis set by 'term_seconds' field.
- TYPE_TIMEPASS: Timepass type is a time limited access to the content.
It is same as bundle type but with expiration date.
- TYPE_PPV: PPV - Pay Per View. This is a one-time purchase for a single MCLS event, with lifetime access once purchased.

mycujoo.subscriptions.v1beta1.UpdatePackageResponse

{
  "package": {
    "apple_app_store_product_id": "string",
    "concurrency_limit": 0,
    "contents": [
      {
        "id": "string",
        "priority": 0,
        "type": "string"
      }
    ],
    "create_time": "2019-08-24T14:15:22Z",
    "description": "string",
    "end_time": "2019-08-24T14:15:22Z",
    "google_play_sku": "string",
    "hero_image_asset_id": "string",
    "id": "string",
    "is_geoblocked": true,
    "locale_overrides": [
      {
        "description": "string",
        "language_code": "string",
        "name": "string",
        "short_name": "string"
      }
    ],
    "logo_asset_id": "string",
    "name": "string",
    "price": {
      "currency_code": "string",
      "nanos": 0,
      "units": "string"
    },
    "price_msrp": {
      "currency_code": "string",
      "nanos": 0,
      "units": "string"
    },
    "price_per_item": {
      "currency_code": "string",
      "nanos": 0,
      "units": "string"
    },
    "priority": 0,
    "short_name": "string",
    "start_time": "2019-08-24T14:15:22Z",
    "state": "STATE_UNSPECIFIED",
    "term": {
      "factor": 0,
      "period": "CALENDAR_PERIOD_UNSPECIFIED"
    },
    "type": "TYPE_UNSPECIFIED"
  }
}

Properties

Name Type Required Restrictions Description
package mycujoo.subscriptions.v1beta1.Package false none Package is a access protected one or many contents that user can pay for.

mycujoo.thumbnails.v1.CreateThumbnailRequest

{
  "output_format": "OUTPUT_FORMAT_UNSPECIFIED",
  "position": "string",
  "stream_id": "string",
  "title": "string"
}

Properties

Name Type Required Restrictions Description
output_format mycujoo.thumbnails.v1.OutputFormat false none - OUTPUT_FORMAT_JPEG: .jpeg
- OUTPUT_FORMAT_PNG: .png
position string false none none
stream_id string true none none
title string false none none

mycujoo.thumbnails.v1.CreateThumbnailResponse

{
  "asset_id": "string",
  "create_time": "2019-08-24T14:15:22Z",
  "download_url": "string",
  "expiry_time": "2019-08-24T14:15:22Z",
  "filename": "string",
  "org_id": "string",
  "project_id": "string",
  "size_bytes": "string",
  "stream_id": "string"
}

Properties

Name Type Required Restrictions Description
asset_id string false none none
create_time string(date-time) false none none
download_url string false none none
expiry_time string(date-time) false none none
filename string false none none
org_id string false none none
project_id string false none none
size_bytes string(int64) false none none
stream_id string false none none

mycujoo.thumbnails.v1.OutputFormat

"OUTPUT_FORMAT_UNSPECIFIED"

File extension using which the thumbnails will be generated

Properties

Name Type Required Restrictions Description
File extension using which the thumbnails will be generated string false none - OUTPUT_FORMAT_JPEG: .jpeg
- OUTPUT_FORMAT_PNG: .png

Enumerated Values

Property Value
File extension using which the thumbnails will be generated OUTPUT_FORMAT_UNSPECIFIED
File extension using which the thumbnails will be generated OUTPUT_FORMAT_JPEG
File extension using which the thumbnails will be generated OUTPUT_FORMAT_PNG

mycujoo.timelines.v1beta1.CreateRequest

{
  "name": "string",
  "stream_id": "string"
}

Properties

Name Type Required Restrictions Description
name string false none none
stream_id string false none none

mycujoo.timelines.v1beta1.CreateResponse

{
  "timeline": {
    "create_time": "2019-08-24T14:15:22Z",
    "id": "string",
    "name": "string",
    "stream_id": "string",
    "type": "TYPE_SYSTEM"
  }
}

Properties

Name Type Required Restrictions Description
timeline mycujoo.timelines.v1beta1.Timeline false none none

mycujoo.timelines.v1beta1.DeleteResponse

{}

Properties

None

mycujoo.timelines.v1beta1.GetResponse

{
  "timeline": {
    "create_time": "2019-08-24T14:15:22Z",
    "id": "string",
    "name": "string",
    "stream_id": "string",
    "type": "TYPE_SYSTEM"
  }
}

Properties

Name Type Required Restrictions Description
timeline mycujoo.timelines.v1beta1.Timeline false none none

mycujoo.timelines.v1beta1.ListResponse

{
  "timelines": [
    {
      "create_time": "2019-08-24T14:15:22Z",
      "id": "string",
      "name": "string",
      "stream_id": "string",
      "type": "TYPE_SYSTEM"
    }
  ]
}

Properties

Name Type Required Restrictions Description
timelines [mycujoo.timelines.v1beta1.Timeline] false none none

mycujoo.timelines.v1beta1.Timeline

{
  "create_time": "2019-08-24T14:15:22Z",
  "id": "string",
  "name": "string",
  "stream_id": "string",
  "type": "TYPE_SYSTEM"
}

Properties

Name Type Required Restrictions Description
create_time string(date-time) false none none
id string false none none
name string false none none
stream_id string false none none
type mycujoo.timelines.v1beta1.Timeline.Type false none An enum value that indicates the way timeline was created.

- TYPE_SYSTEM: TYPE_SYSTEM indicates that timeline was created by the system
- TYPE_USER: TYPE_USER indicates that timeline was created by the user

mycujoo.timelines.v1beta1.Timeline.Type

"TYPE_SYSTEM"

An enum value that indicates the way timeline was created.

Properties

Name Type Required Restrictions Description
anonymous string false none An enum value that indicates the way timeline was created.

- TYPE_SYSTEM: TYPE_SYSTEM indicates that timeline was created by the system
- TYPE_USER: TYPE_USER indicates that timeline was created by the user

Enumerated Values

Property Value
anonymous TYPE_SYSTEM
anonymous TYPE_USER

mycujoo.userconsent.v1beta1.AcceptDocumentResponse

{
  "document_id": "string",
  "version_id": "string"
}

Properties

Name Type Required Restrictions Description
document_id string false none none
version_id string false none none

mycujoo.userconsent.v1beta1.CheckDocumentsRequest

{
  "ids": [
    "string"
  ]
}

Properties

Name Type Required Restrictions Description
ids [string] false none none

mycujoo.userconsent.v1beta1.CheckDocumentsResponse

{
  "documents": [
    {
      "acceptance_period_time": "2019-08-24T14:15:22Z",
      "accepted": true,
      "content_url": "string",
      "document_id": "string",
      "version_id": "string"
    }
  ]
}

Properties

Name Type Required Restrictions Description
documents [mycujoo.userconsent.v1beta1.Document] false none none

mycujoo.userconsent.v1beta1.Document

{
  "acceptance_period_time": "2019-08-24T14:15:22Z",
  "accepted": true,
  "content_url": "string",
  "document_id": "string",
  "version_id": "string"
}

Properties

Name Type Required Restrictions Description
acceptance_period_time string(date-time) false none none
accepted boolean false none none
content_url string false none none
document_id string false none none
version_id string false none none

mycujoo.userconsent.v1beta1.GetDocumentContentResponse

{
  "content_html": "string",
  "content_url": "string"
}

Properties

Name Type Required Restrictions Description
content_html string false none none
content_url string false none none

mycujoo.userdataaction.v1beta1.CreateResponse

{}

Properties

None

mycujoo.userdataaction.v1beta1.UpdateResponse

{}

Properties

None

mycujoo.userdataaction.v1beta1.Value

{
  "bool": true,
  "float": 0.1,
  "int": 0,
  "string": "string",
  "timestamp": "2019-08-24T14:15:22Z"
}

Properties

Name Type Required Restrictions Description
bool boolean false none none
float number(float) false none none
int integer(int32) false none none
string string false none none
timestamp string(date-time) false none none

mycujoo.videostitching.v1.AssetInput

{
  "asset_id": "string",
  "end_offset": "string",
  "start_offset": "string"
}

Input of type Asset

Properties

Name Type Required Restrictions Description
asset_id string true none none
end_offset string false none none
start_offset string false none none

mycujoo.videostitching.v1.AssetOutput

{
  "asset_id": "string",
  "transcoding_settings": {
    "audio_bitrate": 32,
    "follow_source_fps": true,
    "gop": 25,
    "id": "string",
    "interlacing_filter_mode": "INTERLACING_FILTER_MODE_UNSPECIFIED",
    "key_frame_interval": 1,
    "level": 0.1,
    "profile": "TRANSCODING_PROFILE_UNSPECIFIED"
  },
  "video_representation": {
    "bitrate": 100,
    "framerate": 24,
    "height": 240,
    "id": "string",
    "width": 320
  },
  "watermark": {
    "height": 0,
    "id": "string",
    "position_preset": "POSITION_UNSPECIFIED",
    "url": "string",
    "width": 0
  }
}

Properties

Name Type Required Restrictions Description
asset_id string false none none
transcoding_settings mycujoo.videostitching.v1.TranscodingSettings false none none
video_representation mycujoo.videostitching.v1.VideoRepresentation false none none
watermark mycujoo.videostitching.v1.Watermark false none none

mycujoo.videostitching.v1.CancelJobResponse

{}

Properties

None

mycujoo.videostitching.v1.CancelOutputJobResponse

{
  "id": "string"
}

Properties

Name Type Required Restrictions Description
id string false none none

mycujoo.videostitching.v1.ClipInput

{
  "clip_id": "string",
  "end_offset": "string",
  "start_offset": "string"
}

Input of type clip

Properties

Name Type Required Restrictions Description
clip_id string true none none
end_offset string false none none
start_offset string false none none

mycujoo.videostitching.v1.CreateJobRequest

{
  "inputs": [
    {
      "asset": {
        "asset_id": "string",
        "end_offset": "string",
        "start_offset": "string"
      },
      "clip": {
        "clip_id": "string",
        "end_offset": "string",
        "start_offset": "string"
      },
      "stream": {
        "end_offset": "string",
        "resource_type": "STREAM_RESOURCE_TYPE_UNSPECIFIED",
        "start_offset": "string",
        "stream_id": "string"
      }
    }
  ],
  "outputs": [
    {
      "asset": {
        "config": {
          "transcoding_settings_id": "string",
          "video_representation_id": "string",
          "watermark_id": "string"
        },
        "labels": {
          "property1": "string",
          "property2": "string"
        },
        "title": "string"
      },
      "stream": {
        "stream_id": "string"
      }
    }
  ],
  "project_id": "string",
  "start_immediately": true,
  "title": "string"
}

Properties

Name Type Required Restrictions Description
inputs [mycujoo.videostitching.v1.Input] true none none
outputs [mycujoo.videostitching.v1.RequestedOutput] true none none
project_id string true none none
start_immediately boolean false none none
title string false none Title of the job. If this field is empty, a random title will be set.

mycujoo.videostitching.v1.CreateJobResponse

{
  "job": {
    "create_time": "2019-08-24T14:15:22Z",
    "id": "string",
    "inputs": [
      {
        "asset": {
          "asset_id": "string",
          "end_offset": "string",
          "start_offset": "string"
        },
        "clip": {
          "clip_id": "string",
          "end_offset": "string",
          "start_offset": "string"
        },
        "stream": {
          "end_offset": "string",
          "resource_type": "STREAM_RESOURCE_TYPE_UNSPECIFIED",
          "start_offset": "string",
          "stream_id": "string"
        }
      }
    ],
    "org_id": "string",
    "outputs": [
      {
        "asset": {
          "asset_id": "string",
          "transcoding_settings": {
            "audio_bitrate": 32,
            "follow_source_fps": true,
            "gop": 25,
            "id": "string",
            "interlacing_filter_mode": "INTERLACING_FILTER_MODE_UNSPECIFIED",
            "key_frame_interval": 1,
            "level": 0.1,
            "profile": "TRANSCODING_PROFILE_UNSPECIFIED"
          },
          "video_representation": {
            "bitrate": 100,
            "framerate": 24,
            "height": 240,
            "id": "string",
            "width": 320
          },
          "watermark": {
            "height": 0,
            "id": "string",
            "position_preset": "POSITION_UNSPECIFIED",
            "url": "string",
            "width": 0
          }
        },
        "last_execution_time": "2019-08-24T14:15:22Z",
        "output_id": "string",
        "output_status": "OUTPUT_STATUS_UNSPECIFIED",
        "stream": {
          "stream_id": "string"
        }
      }
    ],
    "project_id": "string",
    "status": "JOB_STATUS_UNSPECIFIED",
    "title": "string",
    "update_time": "2019-08-24T14:15:22Z"
  }
}

Properties

Name Type Required Restrictions Description
job mycujoo.videostitching.v1.Job false none none

mycujoo.videostitching.v1.GetJobResponse

{
  "job": {
    "create_time": "2019-08-24T14:15:22Z",
    "id": "string",
    "inputs": [
      {
        "asset": {
          "asset_id": "string",
          "end_offset": "string",
          "start_offset": "string"
        },
        "clip": {
          "clip_id": "string",
          "end_offset": "string",
          "start_offset": "string"
        },
        "stream": {
          "end_offset": "string",
          "resource_type": "STREAM_RESOURCE_TYPE_UNSPECIFIED",
          "start_offset": "string",
          "stream_id": "string"
        }
      }
    ],
    "org_id": "string",
    "outputs": [
      {
        "asset": {
          "asset_id": "string",
          "transcoding_settings": {
            "audio_bitrate": 32,
            "follow_source_fps": true,
            "gop": 25,
            "id": "string",
            "interlacing_filter_mode": "INTERLACING_FILTER_MODE_UNSPECIFIED",
            "key_frame_interval": 1,
            "level": 0.1,
            "profile": "TRANSCODING_PROFILE_UNSPECIFIED"
          },
          "video_representation": {
            "bitrate": 100,
            "framerate": 24,
            "height": 240,
            "id": "string",
            "width": 320
          },
          "watermark": {
            "height": 0,
            "id": "string",
            "position_preset": "POSITION_UNSPECIFIED",
            "url": "string",
            "width": 0
          }
        },
        "last_execution_time": "2019-08-24T14:15:22Z",
        "output_id": "string",
        "output_status": "OUTPUT_STATUS_UNSPECIFIED",
        "stream": {
          "stream_id": "string"
        }
      }
    ],
    "project_id": "string",
    "status": "JOB_STATUS_UNSPECIFIED",
    "title": "string",
    "update_time": "2019-08-24T14:15:22Z"
  }
}

Properties

Name Type Required Restrictions Description
job mycujoo.videostitching.v1.Job false none none

mycujoo.videostitching.v1.Input

{
  "asset": {
    "asset_id": "string",
    "end_offset": "string",
    "start_offset": "string"
  },
  "clip": {
    "clip_id": "string",
    "end_offset": "string",
    "start_offset": "string"
  },
  "stream": {
    "end_offset": "string",
    "resource_type": "STREAM_RESOURCE_TYPE_UNSPECIFIED",
    "start_offset": "string",
    "stream_id": "string"
  }
}

Input of the videostitching job

Properties

Name Type Required Restrictions Description
asset mycujoo.videostitching.v1.AssetInput false none none
clip mycujoo.videostitching.v1.ClipInput false none none
stream mycujoo.videostitching.v1.StreamInput false none none

mycujoo.videostitching.v1.Job

{
  "create_time": "2019-08-24T14:15:22Z",
  "id": "string",
  "inputs": [
    {
      "asset": {
        "asset_id": "string",
        "end_offset": "string",
        "start_offset": "string"
      },
      "clip": {
        "clip_id": "string",
        "end_offset": "string",
        "start_offset": "string"
      },
      "stream": {
        "end_offset": "string",
        "resource_type": "STREAM_RESOURCE_TYPE_UNSPECIFIED",
        "start_offset": "string",
        "stream_id": "string"
      }
    }
  ],
  "org_id": "string",
  "outputs": [
    {
      "asset": {
        "asset_id": "string",
        "transcoding_settings": {
          "audio_bitrate": 32,
          "follow_source_fps": true,
          "gop": 25,
          "id": "string",
          "interlacing_filter_mode": "INTERLACING_FILTER_MODE_UNSPECIFIED",
          "key_frame_interval": 1,
          "level": 0.1,
          "profile": "TRANSCODING_PROFILE_UNSPECIFIED"
        },
        "video_representation": {
          "bitrate": 100,
          "framerate": 24,
          "height": 240,
          "id": "string",
          "width": 320
        },
        "watermark": {
          "height": 0,
          "id": "string",
          "position_preset": "POSITION_UNSPECIFIED",
          "url": "string",
          "width": 0
        }
      },
      "last_execution_time": "2019-08-24T14:15:22Z",
      "output_id": "string",
      "output_status": "OUTPUT_STATUS_UNSPECIFIED",
      "stream": {
        "stream_id": "string"
      }
    }
  ],
  "project_id": "string",
  "status": "JOB_STATUS_UNSPECIFIED",
  "title": "string",
  "update_time": "2019-08-24T14:15:22Z"
}

Represents a videostitching job

Properties

Name Type Required Restrictions Description
create_time string(date-time) false none none
id string false none none
inputs [mycujoo.videostitching.v1.Input] false none none
org_id string false none none
outputs [mycujoo.videostitching.v1.Output] false none none
project_id string false none none
status mycujoo.videostitching.v1.JobStatus false none none
title string false none none
update_time string(date-time) false none none

mycujoo.videostitching.v1.JobStatus

"JOB_STATUS_UNSPECIFIED"

Status of the job

Properties

Name Type Required Restrictions Description
Status of the job string false none none

Enumerated Values

Property Value
Status of the job JOB_STATUS_UNSPECIFIED
Status of the job JOB_STATUS_CREATED
Status of the job JOB_STATUS_READY
Status of the job JOB_STATUS_RUNNING
Status of the job JOB_STATUS_FAILED
Status of the job JOB_STATUS_PARTIALLY_FAILED
Status of the job JOB_STATUS_DONE
Status of the job JOB_STATUS_CANCELLED

mycujoo.videostitching.v1.ListJobsResponse

{
  "jobs": [
    {
      "create_time": "2019-08-24T14:15:22Z",
      "id": "string",
      "inputs": [
        {
          "asset": {
            "asset_id": "string",
            "end_offset": "string",
            "start_offset": "string"
          },
          "clip": {
            "clip_id": "string",
            "end_offset": "string",
            "start_offset": "string"
          },
          "stream": {
            "end_offset": "string",
            "resource_type": "STREAM_RESOURCE_TYPE_UNSPECIFIED",
            "start_offset": "string",
            "stream_id": "string"
          }
        }
      ],
      "org_id": "string",
      "outputs": [
        {
          "asset": {
            "asset_id": "string",
            "transcoding_settings": {
              "audio_bitrate": 32,
              "follow_source_fps": true,
              "gop": 25,
              "id": "string",
              "interlacing_filter_mode": "INTERLACING_FILTER_MODE_UNSPECIFIED",
              "key_frame_interval": 1,
              "level": 0.1,
              "profile": "TRANSCODING_PROFILE_UNSPECIFIED"
            },
            "video_representation": {
              "bitrate": 100,
              "framerate": 24,
              "height": 240,
              "id": "string",
              "width": 320
            },
            "watermark": {
              "height": 0,
              "id": "string",
              "position_preset": "POSITION_UNSPECIFIED",
              "url": "string",
              "width": 0
            }
          },
          "last_execution_time": "2019-08-24T14:15:22Z",
          "output_id": "string",
          "output_status": "OUTPUT_STATUS_UNSPECIFIED",
          "stream": {
            "stream_id": "string"
          }
        }
      ],
      "project_id": "string",
      "status": "JOB_STATUS_UNSPECIFIED",
      "title": "string",
      "update_time": "2019-08-24T14:15:22Z"
    }
  ],
  "next_page_token": "string"
}

Properties

Name Type Required Restrictions Description
jobs [mycujoo.videostitching.v1.Job] false none none
next_page_token string false none The pagination token that should be used to get next page results.
An empty value means no more results.

mycujoo.videostitching.v1.ListTranscodingSettingsResponse

{
  "next_page_token": "string",
  "transcoding_settings": [
    {
      "audio_bitrate": 32,
      "follow_source_fps": true,
      "gop": 25,
      "id": "string",
      "interlacing_filter_mode": "INTERLACING_FILTER_MODE_UNSPECIFIED",
      "key_frame_interval": 1,
      "level": 0.1,
      "profile": "TRANSCODING_PROFILE_UNSPECIFIED"
    }
  ]
}

Properties

Name Type Required Restrictions Description
next_page_token string false none The pagination token that should be used to get next page results.
An empty value means no more results.
transcoding_settings [mycujoo.videostitching.v1.TranscodingSettings] false none none

mycujoo.videostitching.v1.ListVideoRepresentationsResponse

{
  "next_page_token": "string",
  "video_representations": [
    {
      "bitrate": 100,
      "framerate": 24,
      "height": 240,
      "id": "string",
      "width": 320
    }
  ]
}

Properties

Name Type Required Restrictions Description
next_page_token string false none The pagination token that should be used to get next page results.
An empty value means no more results.
video_representations [mycujoo.videostitching.v1.VideoRepresentation] false none none

mycujoo.videostitching.v1.ListWatermarksResponse

{
  "next_page_token": "string",
  "watermarks": [
    {
      "height": 0,
      "id": "string",
      "position_preset": "POSITION_UNSPECIFIED",
      "url": "string",
      "width": 0
    }
  ]
}

Properties

Name Type Required Restrictions Description
next_page_token string false none The pagination token that should be used to get next page results.
An empty value means no more results.
watermarks [mycujoo.videostitching.v1.Watermark] false none none

mycujoo.videostitching.v1.Output

{
  "asset": {
    "asset_id": "string",
    "transcoding_settings": {
      "audio_bitrate": 32,
      "follow_source_fps": true,
      "gop": 25,
      "id": "string",
      "interlacing_filter_mode": "INTERLACING_FILTER_MODE_UNSPECIFIED",
      "key_frame_interval": 1,
      "level": 0.1,
      "profile": "TRANSCODING_PROFILE_UNSPECIFIED"
    },
    "video_representation": {
      "bitrate": 100,
      "framerate": 24,
      "height": 240,
      "id": "string",
      "width": 320
    },
    "watermark": {
      "height": 0,
      "id": "string",
      "position_preset": "POSITION_UNSPECIFIED",
      "url": "string",
      "width": 0
    }
  },
  "last_execution_time": "2019-08-24T14:15:22Z",
  "output_id": "string",
  "output_status": "OUTPUT_STATUS_UNSPECIFIED",
  "stream": {
    "stream_id": "string"
  }
}

Output of the videostitching job

Properties

Name Type Required Restrictions Description
asset mycujoo.videostitching.v1.AssetOutput false none none
last_execution_time string(date-time) false none none
output_id string false none none
output_status mycujoo.videostitching.v1.OutputStatus false none none
stream mycujoo.videostitching.v1.StreamOutput false none none

mycujoo.videostitching.v1.OutputStatus

"OUTPUT_STATUS_UNSPECIFIED"

Status of the output

Properties

Name Type Required Restrictions Description
Status of the output string false none none

Enumerated Values

Property Value
Status of the output OUTPUT_STATUS_UNSPECIFIED
Status of the output OUTPUT_STATUS_TO_BE_PROCESSED
Status of the output OUTPUT_STATUS_PROCESSING
Status of the output OUTPUT_STATUS_FAILED
Status of the output OUTPUT_STATUS_DONE

mycujoo.videostitching.v1.RequestedAssetOutput

{
  "config": {
    "transcoding_settings_id": "string",
    "video_representation_id": "string",
    "watermark_id": "string"
  },
  "labels": {
    "property1": "string",
    "property2": "string"
  },
  "title": "string"
}

Properties

Name Type Required Restrictions Description
config mycujoo.videostitching.v1.RequestedAssetOutputConfig false none none
labels object false none none
ยป additionalProperties string false none none
title string false none none

mycujoo.videostitching.v1.RequestedAssetOutputConfig

{
  "transcoding_settings_id": "string",
  "video_representation_id": "string",
  "watermark_id": "string"
}

Configuration of the output video

Properties

Name Type Required Restrictions Description
transcoding_settings_id string false none none
video_representation_id string false none none
watermark_id string false none none

mycujoo.videostitching.v1.RequestedOutput

{
  "asset": {
    "config": {
      "transcoding_settings_id": "string",
      "video_representation_id": "string",
      "watermark_id": "string"
    },
    "labels": {
      "property1": "string",
      "property2": "string"
    },
    "title": "string"
  },
  "stream": {
    "stream_id": "string"
  }
}

Desired output of video stitching

Properties

Name Type Required Restrictions Description
asset mycujoo.videostitching.v1.RequestedAssetOutput false none none
stream mycujoo.videostitching.v1.RequestedStreamOutput false none none

mycujoo.videostitching.v1.RequestedStreamOutput

{
  "stream_id": "string"
}

Properties

Name Type Required Restrictions Description
stream_id string false none none

mycujoo.videostitching.v1.RetryJobResponse

{}

Properties

None

mycujoo.videostitching.v1.RetryOutputJobResponse

{}

Properties

None

mycujoo.videostitching.v1.StartJobResponse

{}

Properties

None

mycujoo.videostitching.v1.StreamInput

{
  "end_offset": "string",
  "resource_type": "STREAM_RESOURCE_TYPE_UNSPECIFIED",
  "start_offset": "string",
  "stream_id": "string"
}

Input of type stream

Properties

Name Type Required Restrictions Description
end_offset string false none none
resource_type mycujoo.videostitching.v1.StreamResourceType false none - STREAM_RESOURCE_TYPE_PLAYLIST_TRANSCODED_HLS: Type playlist_transcoded_hls will select the transcoded hls playlist of provided stream
- STREAM_RESOURCE_TYPE_CLIPS: Type clips will select all clips of provided stream (clips that are all children of this particular stream)
start_offset string false none none
stream_id string true none none

mycujoo.videostitching.v1.StreamOutput

{
  "stream_id": "string"
}

Properties

Name Type Required Restrictions Description
stream_id string false none none

mycujoo.videostitching.v1.StreamResourceType

"STREAM_RESOURCE_TYPE_UNSPECIFIED"

Resource type of a stream

Properties

Name Type Required Restrictions Description
Resource type of a stream string false none - STREAM_RESOURCE_TYPE_PLAYLIST_TRANSCODED_HLS: Type playlist_transcoded_hls will select the transcoded hls playlist of provided stream
- STREAM_RESOURCE_TYPE_CLIPS: Type clips will select all clips of provided stream (clips that are all children of this particular stream)

Enumerated Values

Property Value
Resource type of a stream STREAM_RESOURCE_TYPE_UNSPECIFIED
Resource type of a stream STREAM_RESOURCE_TYPE_PLAYLIST_TRANSCODED_HLS
Resource type of a stream STREAM_RESOURCE_TYPE_CLIPS

mycujoo.videostitching.v1.TranscodingSettings

{
  "audio_bitrate": 32,
  "follow_source_fps": true,
  "gop": 25,
  "id": "string",
  "interlacing_filter_mode": "INTERLACING_FILTER_MODE_UNSPECIFIED",
  "key_frame_interval": 1,
  "level": 0.1,
  "profile": "TRANSCODING_PROFILE_UNSPECIFIED"
}

Properties

Name Type Required Restrictions Description
audio_bitrate integer(int32) false none none
follow_source_fps boolean false none none
gop integer(int32) false none none
id string false none none
interlacing_filter_mode mycujoo.videostitching.v1.TranscodingSettings.InterlacingFilterMode false none none
key_frame_interval integer(int32) false none none
level number(double) false none none
profile mycujoo.videostitching.v1.TranscodingSettings.TranscodingProfile false none none

mycujoo.videostitching.v1.TranscodingSettings.InterlacingFilterMode

"INTERLACING_FILTER_MODE_UNSPECIFIED"

Properties

Name Type Required Restrictions Description
anonymous string false none none

Enumerated Values

Property Value
anonymous INTERLACING_FILTER_MODE_UNSPECIFIED
anonymous INTERLACING_FILTER_MODE_INTERLACE
anonymous INTERLACING_FILTER_MODE_DEINTERLACE

mycujoo.videostitching.v1.TranscodingSettings.TranscodingProfile

"TRANSCODING_PROFILE_UNSPECIFIED"

Properties

Name Type Required Restrictions Description
anonymous string false none none

Enumerated Values

Property Value
anonymous TRANSCODING_PROFILE_UNSPECIFIED
anonymous TRANSCODING_PROFILE_BASELINE
anonymous TRANSCODING_PROFILE_MAIN
anonymous TRANSCODING_PROFILE_HIGH

mycujoo.videostitching.v1.UpdateJobResponse

{}

Properties

None

mycujoo.videostitching.v1.VideoRepresentation

{
  "bitrate": 100,
  "framerate": 24,
  "height": 240,
  "id": "string",
  "width": 320
}

Properties

Name Type Required Restrictions Description
bitrate integer(int32) false none none
framerate integer(int32) false none none
height integer(int32) false none none
id string false none none
width integer(int32) false none none

mycujoo.videostitching.v1.Watermark

{
  "height": 0,
  "id": "string",
  "position_preset": "POSITION_UNSPECIFIED",
  "url": "string",
  "width": 0
}

Properties

Name Type Required Restrictions Description
height integer(int32) false none none
id string false none none
position_preset mycujoo.videostitching.v1.Watermark.Position false none none
url string false none none
width integer(int32) false none none

mycujoo.videostitching.v1.Watermark.Position

"POSITION_UNSPECIFIED"

Properties

Name Type Required Restrictions Description
anonymous string false none none

Enumerated Values

Property Value
anonymous POSITION_UNSPECIFIED
anonymous POSITION_TOP_LEFT
anonymous POSITION_TOP_RIGHT
anonymous POSITION_BOTTOM_LEFT
anonymous POSITION_BOTTOM_RIGHT
anonymous POSITION_TOP_CENTER
anonymous POSITION_BOTTOM_CENTER
anonymous POSITION_CENTER

mycujoo.vpn_blocking.v1.GetVPNBlockingResponse

{
  "create_time": "2019-08-24T14:15:22Z",
  "id": "string",
  "is_enabled": true,
  "org_id": "string",
  "resource_id": "string",
  "resource_type": "string",
  "update_time": "2019-08-24T14:15:22Z"
}

Properties

Name Type Required Restrictions Description
create_time string(date-time) false none none
id string false none none
is_enabled boolean false none none
org_id string false none none
resource_id string false none none
resource_type string false none none
update_time string(date-time) false none none

mycujoo.vpn_blocking.v1.UpsertVPNBlockingResponse

{
  "create_time": "2019-08-24T14:15:22Z",
  "id": "string",
  "is_enabled": true,
  "org_id": "string",
  "resource_id": "string",
  "resource_type": "string",
  "update_time": "2019-08-24T14:15:22Z"
}

Properties

Name Type Required Restrictions Description
create_time string(date-time) false none none
id string false none none
is_enabled boolean false none none
org_id string false none none
resource_id string false none none
resource_type string false none none
update_time string(date-time) false none none