/* tslint:disable */
/* eslint-disable */
/**
 * ShipStation API v2
 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
 *
 * The version of the OpenAPI document: 2.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.
 */


// May contain unused imports in some cases
// @ts-ignore
import type { DangerousAmount } from './dangerous-amount';

/**
 * Dangerous goods attribute associated with the product 
 * @export
 * @interface DangerousGoods
 */
export interface DangerousGoods {
    [key: string]: any;

    /**
     * UN number to identify the dangerous goods.
     * @type {string}
     * @memberof DangerousGoods
     */
    'id_number'?: string | null;
    /**
     * Trade description of the dangerous goods.
     * @type {string}
     * @memberof DangerousGoods
     */
    'shipping_name'?: string | null;
    /**
     * Recognized Technical or chemical name of dangerous goods.
     * @type {string}
     * @memberof DangerousGoods
     */
    'technical_name'?: string | null;
    /**
     * Dangerous goods product class based on regulation.
     * @type {string}
     * @memberof DangerousGoods
     */
    'product_class'?: string | null;
    /**
     * A secondary of product class for substances presenting more than one particular hazard
     * @type {string}
     * @memberof DangerousGoods
     */
    'product_class_subsidiary'?: string | null;
    /**
     * 
     * @type {string}
     * @memberof DangerousGoods
     */
    'packaging_group'?: DangerousGoodsPackagingGroupEnum;
    /**
     * This model represents the amount of the dangerous goods.
     * @type {DangerousAmount}
     * @memberof DangerousGoods
     */
    'dangerous_amount'?: DangerousAmount;
    /**
     * Quantity of dangerous goods.
     * @type {number}
     * @memberof DangerousGoods
     */
    'quantity'?: number;
    /**
     * The specific standardized packaging instructions from the relevant regulatory agency that have been applied to the parcel/container.
     * @type {string}
     * @memberof DangerousGoods
     */
    'packaging_instruction'?: string | null;
    /**
     * 
     * @type {string}
     * @memberof DangerousGoods
     */
    'packaging_instruction_section'?: DangerousGoodsPackagingInstructionSectionEnum;
    /**
     * The type of exterior packaging used to contain the dangerous good.
     * @type {string}
     * @memberof DangerousGoods
     */
    'packaging_type'?: string | null;
    /**
     * 
     * @type {string}
     * @memberof DangerousGoods
     */
    'transport_mean'?: DangerousGoodsTransportMeanEnum;
    /**
     * Transport category assign to dangerous goods for the transport purpose.
     * @type {string}
     * @memberof DangerousGoods
     */
    'transport_category'?: string | null;
    /**
     * Name of the regulatory authority.
     * @type {string}
     * @memberof DangerousGoods
     */
    'regulation_authority'?: string | null;
    /**
     * 
     * @type {string}
     * @memberof DangerousGoods
     */
    'regulation_level'?: DangerousGoodsRegulationLevelEnum;
    /**
     * Indication if the substance is radioactive.
     * @type {boolean}
     * @memberof DangerousGoods
     */
    'radioactive'?: boolean | null;
    /**
     * Indication if the substance needs to be reported to regulatory authority based on the quantity.
     * @type {boolean}
     * @memberof DangerousGoods
     */
    'reportable_quantity'?: boolean | null;
    /**
     * Defines which types of tunnels the shipment is allowed to go through
     * @type {string}
     * @memberof DangerousGoods
     */
    'tunnel_code'?: string | null;
    /**
     * Provider additonal description regarding the dangerous goods. This is used as a placed holder to provider additional context and varies by carrier
     * @type {string}
     * @memberof DangerousGoods
     */
    'additional_description'?: string | null;
}

export const DangerousGoodsPackagingGroupEnum = {
    I: 'i',
    Ii: 'ii',
    Iii: 'iii'
} as const;

export type DangerousGoodsPackagingGroupEnum = typeof DangerousGoodsPackagingGroupEnum[keyof typeof DangerousGoodsPackagingGroupEnum];
export const DangerousGoodsPackagingInstructionSectionEnum = {
    Section1: 'section_1',
    Section2: 'section_2',
    Section1a: 'section_1a',
    Section1b: 'section_1b'
} as const;

export type DangerousGoodsPackagingInstructionSectionEnum = typeof DangerousGoodsPackagingInstructionSectionEnum[keyof typeof DangerousGoodsPackagingInstructionSectionEnum];
export const DangerousGoodsTransportMeanEnum = {
    Ground: 'ground',
    Water: 'water',
    CargoAircraftOnly: 'cargo_aircraft_only',
    PassengerAircraft: 'passenger_aircraft'
} as const;

export type DangerousGoodsTransportMeanEnum = typeof DangerousGoodsTransportMeanEnum[keyof typeof DangerousGoodsTransportMeanEnum];
export const DangerousGoodsRegulationLevelEnum = {
    LightlyRegulated: 'lightly_regulated',
    FullyRegulated: 'fully_regulated',
    LimitedQuantities: 'limited_quantities',
    ExceptedQuantity: 'excepted_quantity'
} as const;

export type DangerousGoodsRegulationLevelEnum = typeof DangerousGoodsRegulationLevelEnum[keyof typeof DangerousGoodsRegulationLevelEnum];


