/* tslint:disable */
/* eslint-disable */
/**
 * chomestatus API
 * The API for chromestatus.com. chromestatus.com is the official tool used for tracking feature launches in Blink (the browser engine that powers Chrome and many other web browsers). This tool guides feature owners through our launch process and serves as a primary source for developer information that then ripples throughout the web developer ecosystem. More details at: https://github.com/GoogleChrome/chromium-dashboard
 *
 * The version of the OpenAPI document: 1.0.0
 * 
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */

import { mapValues } from '../runtime';
import type { FieldInfo } from './FieldInfo';
import {
    FieldInfoFromJSON,
    FieldInfoFromJSONTyped,
    FieldInfoToJSON,
} from './FieldInfo';

/**
 * 
 * @export
 * @interface CreateOriginTrialRequest
 */
export interface CreateOriginTrialRequest {
    /**
     * 
     * @type {FieldInfo}
     * @memberof CreateOriginTrialRequest
     */
    announcement_url?: FieldInfo;
    /**
     * 
     * @type {FieldInfo}
     * @memberof CreateOriginTrialRequest
     */
    browser?: FieldInfo;
    /**
     * 
     * @type {FieldInfo}
     * @memberof CreateOriginTrialRequest
     */
    ot_description?: FieldInfo;
    /**
     * 
     * @type {FieldInfo}
     * @memberof CreateOriginTrialRequest
     */
    display_name?: FieldInfo;
    /**
     * 
     * @type {FieldInfo}
     * @memberof CreateOriginTrialRequest
     */
    enterprise_policies?: FieldInfo;
    /**
     * 
     * @type {FieldInfo}
     * @memberof CreateOriginTrialRequest
     */
    finch_url?: FieldInfo;
    /**
     * 
     * @type {FieldInfo}
     * @memberof CreateOriginTrialRequest
     */
    experiment_goals?: FieldInfo;
    /**
     * 
     * @type {FieldInfo}
     * @memberof CreateOriginTrialRequest
     */
    experiment_risks?: FieldInfo;
    /**
     * 
     * @type {FieldInfo}
     * @memberof CreateOriginTrialRequest
     */
    experiment_extension_reason?: FieldInfo;
    /**
     * 
     * @type {FieldInfo}
     * @memberof CreateOriginTrialRequest
     */
    intent_thread_url?: FieldInfo;
    /**
     * 
     * @type {FieldInfo}
     * @memberof CreateOriginTrialRequest
     */
    origin_trial_feedback_url?: FieldInfo;
    /**
     * 
     * @type {FieldInfo}
     * @memberof CreateOriginTrialRequest
     */
    origin_trial_id?: FieldInfo;
    /**
     * 
     * @type {FieldInfo}
     * @memberof CreateOriginTrialRequest
     */
    ot_approval_buganizer_component?: FieldInfo;
    /**
     * 
     * @type {FieldInfo}
     * @memberof CreateOriginTrialRequest
     */
    ot_approval_buganizer_custom_field_id?: FieldInfo;
    /**
     * 
     * @type {FieldInfo}
     * @memberof CreateOriginTrialRequest
     */
    ot_approval_criteria_url?: FieldInfo;
    /**
     * 
     * @type {FieldInfo}
     * @memberof CreateOriginTrialRequest
     */
    ot_approval_group_email?: FieldInfo;
    /**
     * 
     * @type {FieldInfo}
     * @memberof CreateOriginTrialRequest
     */
    ot_chromium_trial_name?: FieldInfo;
    /**
     * 
     * @type {FieldInfo}
     * @memberof CreateOriginTrialRequest
     */
    ot_display_name?: FieldInfo;
    /**
     * 
     * @type {FieldInfo}
     * @memberof CreateOriginTrialRequest
     */
    ot_action_requested?: FieldInfo;
    /**
     * 
     * @type {FieldInfo}
     * @memberof CreateOriginTrialRequest
     */
    ot_creation__bypass_file_checks?: FieldInfo;
    /**
     * 
     * @type {FieldInfo}
     * @memberof CreateOriginTrialRequest
     */
    ot_documentation_url?: FieldInfo;
    /**
     * 
     * @type {FieldInfo}
     * @memberof CreateOriginTrialRequest
     */
    ot_emails?: FieldInfo;
    /**
     * 
     * @type {FieldInfo}
     * @memberof CreateOriginTrialRequest
     */
    ot_feedback_submission_url?: FieldInfo;
    /**
     * 
     * @type {FieldInfo}
     * @memberof CreateOriginTrialRequest
     */
    ot_has_third_party_support?: FieldInfo;
    /**
     * 
     * @type {FieldInfo}
     * @memberof CreateOriginTrialRequest
     */
    ot_is_critical_trial?: FieldInfo;
    /**
     * 
     * @type {FieldInfo}
     * @memberof CreateOriginTrialRequest
     */
    ot_is_deprecation_trial?: FieldInfo;
    /**
     * 
     * @type {FieldInfo}
     * @memberof CreateOriginTrialRequest
     */
    ot_owner_email?: FieldInfo;
    /**
     * 
     * @type {FieldInfo}
     * @memberof CreateOriginTrialRequest
     */
    ot_requester_email?: FieldInfo;
    /**
     * 
     * @type {FieldInfo}
     * @memberof CreateOriginTrialRequest
     */
    ot_request_note?: FieldInfo;
    /**
     * 
     * @type {FieldInfo}
     * @memberof CreateOriginTrialRequest
     */
    ot_require_approvals?: FieldInfo;
    /**
     * 
     * @type {FieldInfo}
     * @memberof CreateOriginTrialRequest
     */
    ot_stage_id?: FieldInfo;
    /**
     * 
     * @type {FieldInfo}
     * @memberof CreateOriginTrialRequest
     */
    ot_webfeature_use_counter?: FieldInfo;
    /**
     * 
     * @type {FieldInfo}
     * @memberof CreateOriginTrialRequest
     */
    rollout_impact?: FieldInfo;
    /**
     * 
     * @type {FieldInfo}
     * @memberof CreateOriginTrialRequest
     */
    rollout_milestone?: FieldInfo;
    /**
     * 
     * @type {FieldInfo}
     * @memberof CreateOriginTrialRequest
     */
    rollout_platforms?: FieldInfo;
    /**
     * 
     * @type {FieldInfo}
     * @memberof CreateOriginTrialRequest
     */
    rollout_details?: FieldInfo;
    /**
     * 
     * @type {FieldInfo}
     * @memberof CreateOriginTrialRequest
     */
    rollout_stage_plan?: FieldInfo;
    /**
     * 
     * @type {FieldInfo}
     * @memberof CreateOriginTrialRequest
     */
    desktop_first?: FieldInfo;
    /**
     * 
     * @type {FieldInfo}
     * @memberof CreateOriginTrialRequest
     */
    desktop_last?: FieldInfo;
    /**
     * 
     * @type {FieldInfo}
     * @memberof CreateOriginTrialRequest
     */
    android_first?: FieldInfo;
    /**
     * 
     * @type {FieldInfo}
     * @memberof CreateOriginTrialRequest
     */
    android_last?: FieldInfo;
    /**
     * 
     * @type {FieldInfo}
     * @memberof CreateOriginTrialRequest
     */
    ios_first?: FieldInfo;
    /**
     * 
     * @type {FieldInfo}
     * @memberof CreateOriginTrialRequest
     */
    ios_last?: FieldInfo;
    /**
     * 
     * @type {FieldInfo}
     * @memberof CreateOriginTrialRequest
     */
    webview_first?: FieldInfo;
    /**
     * 
     * @type {FieldInfo}
     * @memberof CreateOriginTrialRequest
     */
    webview_last?: FieldInfo;
}

/**
 * Check if a given object implements the CreateOriginTrialRequest interface.
 */
export function instanceOfCreateOriginTrialRequest(value: object): value is CreateOriginTrialRequest {
    return true;
}

export function CreateOriginTrialRequestFromJSON(json: any): CreateOriginTrialRequest {
    return CreateOriginTrialRequestFromJSONTyped(json, false);
}

export function CreateOriginTrialRequestFromJSONTyped(json: any, ignoreDiscriminator: boolean): CreateOriginTrialRequest {
    if (json == null) {
        return json;
    }
    return {
        
        'announcement_url': json['announcement_url'] == null ? undefined : FieldInfoFromJSON(json['announcement_url']),
        'browser': json['browser'] == null ? undefined : FieldInfoFromJSON(json['browser']),
        'ot_description': json['ot_description'] == null ? undefined : FieldInfoFromJSON(json['ot_description']),
        'display_name': json['display_name'] == null ? undefined : FieldInfoFromJSON(json['display_name']),
        'enterprise_policies': json['enterprise_policies'] == null ? undefined : FieldInfoFromJSON(json['enterprise_policies']),
        'finch_url': json['finch_url'] == null ? undefined : FieldInfoFromJSON(json['finch_url']),
        'experiment_goals': json['experiment_goals'] == null ? undefined : FieldInfoFromJSON(json['experiment_goals']),
        'experiment_risks': json['experiment_risks'] == null ? undefined : FieldInfoFromJSON(json['experiment_risks']),
        'experiment_extension_reason': json['experiment_extension_reason'] == null ? undefined : FieldInfoFromJSON(json['experiment_extension_reason']),
        'intent_thread_url': json['intent_thread_url'] == null ? undefined : FieldInfoFromJSON(json['intent_thread_url']),
        'origin_trial_feedback_url': json['origin_trial_feedback_url'] == null ? undefined : FieldInfoFromJSON(json['origin_trial_feedback_url']),
        'origin_trial_id': json['origin_trial_id'] == null ? undefined : FieldInfoFromJSON(json['origin_trial_id']),
        'ot_approval_buganizer_component': json['ot_approval_buganizer_component'] == null ? undefined : FieldInfoFromJSON(json['ot_approval_buganizer_component']),
        'ot_approval_buganizer_custom_field_id': json['ot_approval_buganizer_custom_field_id'] == null ? undefined : FieldInfoFromJSON(json['ot_approval_buganizer_custom_field_id']),
        'ot_approval_criteria_url': json['ot_approval_criteria_url'] == null ? undefined : FieldInfoFromJSON(json['ot_approval_criteria_url']),
        'ot_approval_group_email': json['ot_approval_group_email'] == null ? undefined : FieldInfoFromJSON(json['ot_approval_group_email']),
        'ot_chromium_trial_name': json['ot_chromium_trial_name'] == null ? undefined : FieldInfoFromJSON(json['ot_chromium_trial_name']),
        'ot_display_name': json['ot_display_name'] == null ? undefined : FieldInfoFromJSON(json['ot_display_name']),
        'ot_action_requested': json['ot_action_requested'] == null ? undefined : FieldInfoFromJSON(json['ot_action_requested']),
        'ot_creation__bypass_file_checks': json['ot_creation__bypass_file_checks'] == null ? undefined : FieldInfoFromJSON(json['ot_creation__bypass_file_checks']),
        'ot_documentation_url': json['ot_documentation_url'] == null ? undefined : FieldInfoFromJSON(json['ot_documentation_url']),
        'ot_emails': json['ot_emails'] == null ? undefined : FieldInfoFromJSON(json['ot_emails']),
        'ot_feedback_submission_url': json['ot_feedback_submission_url'] == null ? undefined : FieldInfoFromJSON(json['ot_feedback_submission_url']),
        'ot_has_third_party_support': json['ot_has_third_party_support'] == null ? undefined : FieldInfoFromJSON(json['ot_has_third_party_support']),
        'ot_is_critical_trial': json['ot_is_critical_trial'] == null ? undefined : FieldInfoFromJSON(json['ot_is_critical_trial']),
        'ot_is_deprecation_trial': json['ot_is_deprecation_trial'] == null ? undefined : FieldInfoFromJSON(json['ot_is_deprecation_trial']),
        'ot_owner_email': json['ot_owner_email'] == null ? undefined : FieldInfoFromJSON(json['ot_owner_email']),
        'ot_requester_email': json['ot_requester_email'] == null ? undefined : FieldInfoFromJSON(json['ot_requester_email']),
        'ot_request_note': json['ot_request_note'] == null ? undefined : FieldInfoFromJSON(json['ot_request_note']),
        'ot_require_approvals': json['ot_require_approvals'] == null ? undefined : FieldInfoFromJSON(json['ot_require_approvals']),
        'ot_stage_id': json['ot_stage_id'] == null ? undefined : FieldInfoFromJSON(json['ot_stage_id']),
        'ot_webfeature_use_counter': json['ot_webfeature_use_counter'] == null ? undefined : FieldInfoFromJSON(json['ot_webfeature_use_counter']),
        'rollout_impact': json['rollout_impact'] == null ? undefined : FieldInfoFromJSON(json['rollout_impact']),
        'rollout_milestone': json['rollout_milestone'] == null ? undefined : FieldInfoFromJSON(json['rollout_milestone']),
        'rollout_platforms': json['rollout_platforms'] == null ? undefined : FieldInfoFromJSON(json['rollout_platforms']),
        'rollout_details': json['rollout_details'] == null ? undefined : FieldInfoFromJSON(json['rollout_details']),
        'rollout_stage_plan': json['rollout_stage_plan'] == null ? undefined : FieldInfoFromJSON(json['rollout_stage_plan']),
        'desktop_first': json['desktop_first'] == null ? undefined : FieldInfoFromJSON(json['desktop_first']),
        'desktop_last': json['desktop_last'] == null ? undefined : FieldInfoFromJSON(json['desktop_last']),
        'android_first': json['android_first'] == null ? undefined : FieldInfoFromJSON(json['android_first']),
        'android_last': json['android_last'] == null ? undefined : FieldInfoFromJSON(json['android_last']),
        'ios_first': json['ios_first'] == null ? undefined : FieldInfoFromJSON(json['ios_first']),
        'ios_last': json['ios_last'] == null ? undefined : FieldInfoFromJSON(json['ios_last']),
        'webview_first': json['webview_first'] == null ? undefined : FieldInfoFromJSON(json['webview_first']),
        'webview_last': json['webview_last'] == null ? undefined : FieldInfoFromJSON(json['webview_last']),
    };
}

export function CreateOriginTrialRequestToJSON(value?: CreateOriginTrialRequest | null): any {
    if (value == null) {
        return value;
    }
    return {
        
        'announcement_url': FieldInfoToJSON(value['announcement_url']),
        'browser': FieldInfoToJSON(value['browser']),
        'ot_description': FieldInfoToJSON(value['ot_description']),
        'display_name': FieldInfoToJSON(value['display_name']),
        'enterprise_policies': FieldInfoToJSON(value['enterprise_policies']),
        'finch_url': FieldInfoToJSON(value['finch_url']),
        'experiment_goals': FieldInfoToJSON(value['experiment_goals']),
        'experiment_risks': FieldInfoToJSON(value['experiment_risks']),
        'experiment_extension_reason': FieldInfoToJSON(value['experiment_extension_reason']),
        'intent_thread_url': FieldInfoToJSON(value['intent_thread_url']),
        'origin_trial_feedback_url': FieldInfoToJSON(value['origin_trial_feedback_url']),
        'origin_trial_id': FieldInfoToJSON(value['origin_trial_id']),
        'ot_approval_buganizer_component': FieldInfoToJSON(value['ot_approval_buganizer_component']),
        'ot_approval_buganizer_custom_field_id': FieldInfoToJSON(value['ot_approval_buganizer_custom_field_id']),
        'ot_approval_criteria_url': FieldInfoToJSON(value['ot_approval_criteria_url']),
        'ot_approval_group_email': FieldInfoToJSON(value['ot_approval_group_email']),
        'ot_chromium_trial_name': FieldInfoToJSON(value['ot_chromium_trial_name']),
        'ot_display_name': FieldInfoToJSON(value['ot_display_name']),
        'ot_action_requested': FieldInfoToJSON(value['ot_action_requested']),
        'ot_creation__bypass_file_checks': FieldInfoToJSON(value['ot_creation__bypass_file_checks']),
        'ot_documentation_url': FieldInfoToJSON(value['ot_documentation_url']),
        'ot_emails': FieldInfoToJSON(value['ot_emails']),
        'ot_feedback_submission_url': FieldInfoToJSON(value['ot_feedback_submission_url']),
        'ot_has_third_party_support': FieldInfoToJSON(value['ot_has_third_party_support']),
        'ot_is_critical_trial': FieldInfoToJSON(value['ot_is_critical_trial']),
        'ot_is_deprecation_trial': FieldInfoToJSON(value['ot_is_deprecation_trial']),
        'ot_owner_email': FieldInfoToJSON(value['ot_owner_email']),
        'ot_requester_email': FieldInfoToJSON(value['ot_requester_email']),
        'ot_request_note': FieldInfoToJSON(value['ot_request_note']),
        'ot_require_approvals': FieldInfoToJSON(value['ot_require_approvals']),
        'ot_stage_id': FieldInfoToJSON(value['ot_stage_id']),
        'ot_webfeature_use_counter': FieldInfoToJSON(value['ot_webfeature_use_counter']),
        'rollout_impact': FieldInfoToJSON(value['rollout_impact']),
        'rollout_milestone': FieldInfoToJSON(value['rollout_milestone']),
        'rollout_platforms': FieldInfoToJSON(value['rollout_platforms']),
        'rollout_details': FieldInfoToJSON(value['rollout_details']),
        'rollout_stage_plan': FieldInfoToJSON(value['rollout_stage_plan']),
        'desktop_first': FieldInfoToJSON(value['desktop_first']),
        'desktop_last': FieldInfoToJSON(value['desktop_last']),
        'android_first': FieldInfoToJSON(value['android_first']),
        'android_last': FieldInfoToJSON(value['android_last']),
        'ios_first': FieldInfoToJSON(value['ios_first']),
        'ios_last': FieldInfoToJSON(value['ios_last']),
        'webview_first': FieldInfoToJSON(value['webview_first']),
        'webview_last': FieldInfoToJSON(value['webview_last']),
    };
}

