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

struct UsersProfileApi <: SwaggerApi
    client::Swagger.Client
end

function _swaggerinternal_usersProfileGet(_api::UsersProfileApi; include_labels=nothing, user=nothing, _mediaType=nothing)
    _ctx = Swagger.Ctx(_api.client, "GET", Dict{String, Any}, "/users.profile.get", ["slackAuth"])
    Swagger.set_param(_ctx.query, "include_labels", include_labels)  # type Bool
    Swagger.set_param(_ctx.query, "user", user)  # type String
    Swagger.set_header_accept(_ctx, ["application/json"])
    Swagger.set_header_content_type(_ctx, (_mediaType === nothing) ? ["application/x-www-form-urlencoded"] : [_mediaType])
    return _ctx
end

"""

Retrieves a user's profile information.
Param: include_labels::Bool
Param: user::String
Return: Dict{String, Any}
"""
function usersProfileGet(_api::UsersProfileApi; include_labels=nothing, user=nothing, _mediaType=nothing)
    _ctx = _swaggerinternal_usersProfileGet(_api; include_labels=include_labels, user=user, _mediaType=_mediaType)
    Swagger.exec(_ctx)
end

function usersProfileGet(_api::UsersProfileApi, response_stream::Channel; include_labels=nothing, user=nothing, _mediaType=nothing)
    _ctx = _swaggerinternal_usersProfileGet(_api; include_labels=include_labels, user=user, _mediaType=_mediaType)
    Swagger.exec(_ctx, response_stream)
end

function _swaggerinternal_usersProfileSet(_api::UsersProfileApi; name=nothing, profile=nothing, user=nothing, value=nothing, _mediaType=nothing)
    _ctx = Swagger.Ctx(_api.client, "POST", Dict{String, Any}, "/users.profile.set", ["slackAuth"])
    Swagger.set_param(_ctx.form, "name", name)  # type String
    Swagger.set_param(_ctx.form, "profile", profile)  # type String
    Swagger.set_param(_ctx.form, "user", user)  # type String
    Swagger.set_param(_ctx.form, "value", value)  # type String
    Swagger.set_header_accept(_ctx, ["application/json"])
    Swagger.set_header_content_type(_ctx, (_mediaType === nothing) ? ["application/x-www-form-urlencoded", "application/json"] : [_mediaType])
    return _ctx
end

"""

Set the profile information for a user.
Param: name::String
Param: profile::String
Param: user::String
Param: value::String
Return: Dict{String, Any}
"""
function usersProfileSet(_api::UsersProfileApi; name=nothing, profile=nothing, user=nothing, value=nothing, _mediaType=nothing)
    _ctx = _swaggerinternal_usersProfileSet(_api; name=name, profile=profile, user=user, value=value, _mediaType=_mediaType)
    Swagger.exec(_ctx)
end

function usersProfileSet(_api::UsersProfileApi, response_stream::Channel; name=nothing, profile=nothing, user=nothing, value=nothing, _mediaType=nothing)
    _ctx = _swaggerinternal_usersProfileSet(_api; name=name, profile=profile, user=user, value=value, _mediaType=_mediaType)
    Swagger.exec(_ctx, response_stream)
end

export usersProfileGet, usersProfileSet
