jw_client 1.0.0

A simple API wrapper for the JW Player media management API. List or stream library into native Rust structs and download renditions.
Documentation
use serde::{Deserialize, Serialize};
use serde_json::Value;
use std::collections::HashMap;

///Media Response Page Model
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct MediaPage {
    pub media: Vec<Media>,
    pub page: i64,
    #[serde(rename = "page_length")]
    pub page_length: i64,
    pub total: i64,
}

///Media Item Model
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Media {
    pub created: String,
    pub duration: f64,
    #[serde(rename = "error_message")]
    pub error_message: Value,
    #[serde(rename = "external_id")]
    pub external_id: Value,
    #[serde(rename = "hosting_type")]
    pub hosting_type: String,
    pub id: String,
    #[serde(rename = "last_modified")]
    pub last_modified: String,
    #[serde(rename = "media_type")]
    pub media_type: String,
    pub metadata: Metadata,
    #[serde(rename = "mime_type")]
    pub mime_type: Value,
    pub relationships: Relationships,
    pub schema: Value,
    #[serde(rename = "source_url")]
    pub source_url: Value,
    pub status: String,
    #[serde(rename = "trim_in_point")]
    pub trim_in_point: Value,
    #[serde(rename = "trim_out_point")]
    pub trim_out_point: Value,
    #[serde(rename = "type")]
    pub type_field: String,
}

///Media Metadata Model
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Metadata {
    pub author: Option<String>,
    pub category: Value,
    #[serde(rename = "custom_params")]
    pub custom_params: HashMap<String, Value>,
    pub description: Option<String>,
    #[serde(rename = "external_id")]
    pub external_id: Value,
    pub language: Value,
    pub permalink: Option<String>,
    #[serde(rename = "protection_rule_key")]
    pub protection_rule_key: Value,
    #[serde(rename = "publish_end_date")]
    pub publish_end_date: Value,
    #[serde(rename = "publish_start_date")]
    pub publish_start_date: String,
    pub tags: Vec<String>,
    pub title: String,
}

///Media Relationships Model
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Relationships {}