# This file was generated by the Julia Swagger Code Generator
# Do not modify this file directly. Modify the swagger specification instead.


@doc raw"""
    ObjsMessageAttachments(;
        fallback=nothing,
        id=nothing,
        image_bytes=nothing,
        image_height=nothing,
        image_url=nothing,
        image_width=nothing,
    )

    - fallback::String
    - id::Int32
    - image_bytes::Int32
    - image_height::Int32
    - image_url::String
    - image_width::Int32
"""
mutable struct ObjsMessageAttachments <: SwaggerModel
    fallback::Any # spec type: Union{ Nothing, String } # spec name: fallback
    id::Any # spec type: Union{ Nothing, Int32 } # spec name: id
    image_bytes::Any # spec type: Union{ Nothing, Int32 } # spec name: image_bytes
    image_height::Any # spec type: Union{ Nothing, Int32 } # spec name: image_height
    image_url::Any # spec type: Union{ Nothing, String } # spec name: image_url
    image_width::Any # spec type: Union{ Nothing, Int32 } # spec name: image_width

    function ObjsMessageAttachments(;fallback=nothing, id=nothing, image_bytes=nothing, image_height=nothing, image_url=nothing, image_width=nothing)
        o = new()
        validate_property(ObjsMessageAttachments, Symbol("fallback"), fallback)
        setfield!(o, Symbol("fallback"), fallback)
        validate_property(ObjsMessageAttachments, Symbol("id"), id)
        setfield!(o, Symbol("id"), id)
        validate_property(ObjsMessageAttachments, Symbol("image_bytes"), image_bytes)
        setfield!(o, Symbol("image_bytes"), image_bytes)
        validate_property(ObjsMessageAttachments, Symbol("image_height"), image_height)
        setfield!(o, Symbol("image_height"), image_height)
        validate_property(ObjsMessageAttachments, Symbol("image_url"), image_url)
        setfield!(o, Symbol("image_url"), image_url)
        validate_property(ObjsMessageAttachments, Symbol("image_width"), image_width)
        setfield!(o, Symbol("image_width"), image_width)
        o
    end
end # type ObjsMessageAttachments

const _property_map_ObjsMessageAttachments = Dict{Symbol,Symbol}(Symbol("fallback")=>Symbol("fallback"), Symbol("id")=>Symbol("id"), Symbol("image_bytes")=>Symbol("image_bytes"), Symbol("image_height")=>Symbol("image_height"), Symbol("image_url")=>Symbol("image_url"), Symbol("image_width")=>Symbol("image_width"))
const _property_types_ObjsMessageAttachments = Dict{Symbol,String}(Symbol("fallback")=>"String", Symbol("id")=>"Int32", Symbol("image_bytes")=>"Int32", Symbol("image_height")=>"Int32", Symbol("image_url")=>"String", Symbol("image_width")=>"Int32")
Base.propertynames(::Type{ ObjsMessageAttachments }) = collect(keys(_property_map_ObjsMessageAttachments))
Swagger.property_type(::Type{ ObjsMessageAttachments }, name::Symbol) = Union{Nothing,eval(Base.Meta.parse(_property_types_ObjsMessageAttachments[name]))}
Swagger.field_name(::Type{ ObjsMessageAttachments }, property_name::Symbol) =  _property_map_ObjsMessageAttachments[property_name]

function check_required(o::ObjsMessageAttachments)
    (getproperty(o, Symbol("id")) === nothing) && (return false)
    true
end

function validate_property(::Type{ ObjsMessageAttachments }, name::Symbol, val)
end
