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


@doc raw"""
    ObjsUserProfile(;
        always_active=nothing,
        api_app_id=nothing,
        avatar_hash=nothing,
        bot_id=nothing,
        display_name=nothing,
        display_name_normalized=nothing,
        is_app_user=nothing,
        is_custom_image=nothing,
        last_avatar_image_hash=nothing,
        memberships_count=nothing,
        phone=nothing,
        pronouns=nothing,
        real_name=nothing,
        real_name_normalized=nothing,
        skype=nothing,
        status_default_emoji=nothing,
        status_default_text=nothing,
        status_emoji=nothing,
        status_expiration=nothing,
        status_text=nothing,
        team=nothing,
        title=nothing,
        updated=nothing,
        user_id=nothing,
    )

    - always_active::Bool
    - api_app_id::DefsOptionalAppId
    - avatar_hash::String
    - bot_id::DefsBotId
    - display_name::String
    - display_name_normalized::String
    - is_app_user::Bool
    - is_custom_image::Bool
    - last_avatar_image_hash::String
    - memberships_count::Int32
    - phone::String
    - pronouns::String
    - real_name::String
    - real_name_normalized::String
    - skype::String
    - status_default_emoji::String
    - status_default_text::String
    - status_emoji::String
    - status_expiration::Int32
    - status_text::String
    - team::DefsWorkspaceId
    - title::String
    - updated::Int32
    - user_id::String
"""
mutable struct ObjsUserProfile <: SwaggerModel
    always_active::Any # spec type: Union{ Nothing, Bool } # spec name: always_active
    api_app_id::Any # spec type: Union{ Nothing, DefsOptionalAppId } # spec name: api_app_id
    avatar_hash::Any # spec type: Union{ Nothing, String } # spec name: avatar_hash
    bot_id::Any # spec type: Union{ Nothing, DefsBotId } # spec name: bot_id
    display_name::Any # spec type: Union{ Nothing, String } # spec name: display_name
    display_name_normalized::Any # spec type: Union{ Nothing, String } # spec name: display_name_normalized
    is_app_user::Any # spec type: Union{ Nothing, Bool } # spec name: is_app_user
    is_custom_image::Any # spec type: Union{ Nothing, Bool } # spec name: is_custom_image
    last_avatar_image_hash::Any # spec type: Union{ Nothing, String } # spec name: last_avatar_image_hash
    memberships_count::Any # spec type: Union{ Nothing, Int32 } # spec name: memberships_count
    phone::Any # spec type: Union{ Nothing, String } # spec name: phone
    pronouns::Any # spec type: Union{ Nothing, String } # spec name: pronouns
    real_name::Any # spec type: Union{ Nothing, String } # spec name: real_name
    real_name_normalized::Any # spec type: Union{ Nothing, String } # spec name: real_name_normalized
    skype::Any # spec type: Union{ Nothing, String } # spec name: skype
    status_default_emoji::Any # spec type: Union{ Nothing, String } # spec name: status_default_emoji
    status_default_text::Any # spec type: Union{ Nothing, String } # spec name: status_default_text
    status_emoji::Any # spec type: Union{ Nothing, String } # spec name: status_emoji
    status_expiration::Any # spec type: Union{ Nothing, Int32 } # spec name: status_expiration
    status_text::Any # spec type: Union{ Nothing, String } # spec name: status_text
    team::Any # spec type: Union{ Nothing, DefsWorkspaceId } # spec name: team
    title::Any # spec type: Union{ Nothing, String } # spec name: title
    updated::Any # spec type: Union{ Nothing, Int32 } # spec name: updated
    user_id::Any # spec type: Union{ Nothing, String } # spec name: user_id

    function ObjsUserProfile(;always_active=nothing, api_app_id=nothing, avatar_hash=nothing, bot_id=nothing, display_name=nothing, display_name_normalized=nothing, is_app_user=nothing, is_custom_image=nothing, last_avatar_image_hash=nothing, memberships_count=nothing, phone=nothing, pronouns=nothing, real_name=nothing, real_name_normalized=nothing, skype=nothing, status_default_emoji=nothing, status_default_text=nothing, status_emoji=nothing, status_expiration=nothing, status_text=nothing, team=nothing, title=nothing, updated=nothing, user_id=nothing)
        o = new()
        validate_property(ObjsUserProfile, Symbol("always_active"), always_active)
        setfield!(o, Symbol("always_active"), always_active)
        validate_property(ObjsUserProfile, Symbol("api_app_id"), api_app_id)
        setfield!(o, Symbol("api_app_id"), api_app_id)
        validate_property(ObjsUserProfile, Symbol("avatar_hash"), avatar_hash)
        setfield!(o, Symbol("avatar_hash"), avatar_hash)
        validate_property(ObjsUserProfile, Symbol("bot_id"), bot_id)
        setfield!(o, Symbol("bot_id"), bot_id)
        validate_property(ObjsUserProfile, Symbol("display_name"), display_name)
        setfield!(o, Symbol("display_name"), display_name)
        validate_property(ObjsUserProfile, Symbol("display_name_normalized"), display_name_normalized)
        setfield!(o, Symbol("display_name_normalized"), display_name_normalized)
        validate_property(ObjsUserProfile, Symbol("is_app_user"), is_app_user)
        setfield!(o, Symbol("is_app_user"), is_app_user)
        validate_property(ObjsUserProfile, Symbol("is_custom_image"), is_custom_image)
        setfield!(o, Symbol("is_custom_image"), is_custom_image)
        validate_property(ObjsUserProfile, Symbol("last_avatar_image_hash"), last_avatar_image_hash)
        setfield!(o, Symbol("last_avatar_image_hash"), last_avatar_image_hash)
        validate_property(ObjsUserProfile, Symbol("memberships_count"), memberships_count)
        setfield!(o, Symbol("memberships_count"), memberships_count)
        validate_property(ObjsUserProfile, Symbol("phone"), phone)
        setfield!(o, Symbol("phone"), phone)
        validate_property(ObjsUserProfile, Symbol("pronouns"), pronouns)
        setfield!(o, Symbol("pronouns"), pronouns)
        validate_property(ObjsUserProfile, Symbol("real_name"), real_name)
        setfield!(o, Symbol("real_name"), real_name)
        validate_property(ObjsUserProfile, Symbol("real_name_normalized"), real_name_normalized)
        setfield!(o, Symbol("real_name_normalized"), real_name_normalized)
        validate_property(ObjsUserProfile, Symbol("skype"), skype)
        setfield!(o, Symbol("skype"), skype)
        validate_property(ObjsUserProfile, Symbol("status_default_emoji"), status_default_emoji)
        setfield!(o, Symbol("status_default_emoji"), status_default_emoji)
        validate_property(ObjsUserProfile, Symbol("status_default_text"), status_default_text)
        setfield!(o, Symbol("status_default_text"), status_default_text)
        validate_property(ObjsUserProfile, Symbol("status_emoji"), status_emoji)
        setfield!(o, Symbol("status_emoji"), status_emoji)
        validate_property(ObjsUserProfile, Symbol("status_expiration"), status_expiration)
        setfield!(o, Symbol("status_expiration"), status_expiration)
        validate_property(ObjsUserProfile, Symbol("status_text"), status_text)
        setfield!(o, Symbol("status_text"), status_text)
        validate_property(ObjsUserProfile, Symbol("team"), team)
        setfield!(o, Symbol("team"), team)
        validate_property(ObjsUserProfile, Symbol("title"), title)
        setfield!(o, Symbol("title"), title)
        validate_property(ObjsUserProfile, Symbol("updated"), updated)
        setfield!(o, Symbol("updated"), updated)
        validate_property(ObjsUserProfile, Symbol("user_id"), user_id)
        setfield!(o, Symbol("user_id"), user_id)
        o
    end
end # type ObjsUserProfile

const _property_map_ObjsUserProfile = Dict{Symbol,Symbol}(Symbol("always_active")=>Symbol("always_active"), Symbol("api_app_id")=>Symbol("api_app_id"), Symbol("avatar_hash")=>Symbol("avatar_hash"), Symbol("bot_id")=>Symbol("bot_id"), Symbol("display_name")=>Symbol("display_name"), Symbol("display_name_normalized")=>Symbol("display_name_normalized"), Symbol("is_app_user")=>Symbol("is_app_user"), Symbol("is_custom_image")=>Symbol("is_custom_image"), Symbol("last_avatar_image_hash")=>Symbol("last_avatar_image_hash"), Symbol("memberships_count")=>Symbol("memberships_count"), Symbol("phone")=>Symbol("phone"), Symbol("pronouns")=>Symbol("pronouns"), Symbol("real_name")=>Symbol("real_name"), Symbol("real_name_normalized")=>Symbol("real_name_normalized"), Symbol("skype")=>Symbol("skype"), Symbol("status_default_emoji")=>Symbol("status_default_emoji"), Symbol("status_default_text")=>Symbol("status_default_text"), Symbol("status_emoji")=>Symbol("status_emoji"), Symbol("status_expiration")=>Symbol("status_expiration"), Symbol("status_text")=>Symbol("status_text"), Symbol("team")=>Symbol("team"), Symbol("title")=>Symbol("title"), Symbol("updated")=>Symbol("updated"), Symbol("user_id")=>Symbol("user_id"))
const _property_types_ObjsUserProfile = Dict{Symbol,String}(Symbol("always_active")=>"Bool", Symbol("api_app_id")=>"DefsOptionalAppId", Symbol("avatar_hash")=>"String", Symbol("bot_id")=>"DefsBotId", Symbol("display_name")=>"String", Symbol("display_name_normalized")=>"String", Symbol("is_app_user")=>"Bool", Symbol("is_custom_image")=>"Bool", Symbol("last_avatar_image_hash")=>"String", Symbol("memberships_count")=>"Int32", Symbol("phone")=>"String", Symbol("pronouns")=>"String", Symbol("real_name")=>"String", Symbol("real_name_normalized")=>"String", Symbol("skype")=>"String", Symbol("status_default_emoji")=>"String", Symbol("status_default_text")=>"String", Symbol("status_emoji")=>"String", Symbol("status_expiration")=>"Int32", Symbol("status_text")=>"String", Symbol("team")=>"DefsWorkspaceId", Symbol("title")=>"String", Symbol("updated")=>"Int32", Symbol("user_id")=>"String")
Base.propertynames(::Type{ ObjsUserProfile }) = collect(keys(_property_map_ObjsUserProfile))
Swagger.property_type(::Type{ ObjsUserProfile }, name::Symbol) = Union{Nothing,eval(Base.Meta.parse(_property_types_ObjsUserProfile[name]))}
Swagger.field_name(::Type{ ObjsUserProfile }, property_name::Symbol) =  _property_map_ObjsUserProfile[property_name]

function check_required(o::ObjsUserProfile)
    (getproperty(o, Symbol("avatar_hash")) === nothing) && (return false)
    (getproperty(o, Symbol("display_name")) === nothing) && (return false)
    (getproperty(o, Symbol("display_name_normalized")) === nothing) && (return false)
    (getproperty(o, Symbol("phone")) === nothing) && (return false)
    (getproperty(o, Symbol("real_name")) === nothing) && (return false)
    (getproperty(o, Symbol("real_name_normalized")) === nothing) && (return false)
    (getproperty(o, Symbol("skype")) === nothing) && (return false)
    (getproperty(o, Symbol("status_emoji")) === nothing) && (return false)
    (getproperty(o, Symbol("status_text")) === nothing) && (return false)
    (getproperty(o, Symbol("title")) === nothing) && (return false)
    true
end

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