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

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

function _swaggerinternal_teamAccessLogs(_api::TeamApi; before=nothing, count=nothing, page=nothing, _mediaType=nothing)
    _ctx = Swagger.Ctx(_api.client, "GET", Dict{String, Any}, "/team.accessLogs", ["slackAuth"])
    Swagger.set_param(_ctx.query, "before", before)  # type String
    Swagger.set_param(_ctx.query, "count", count)  # type String
    Swagger.set_param(_ctx.query, "page", page)  # 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

"""

Gets the access logs for the current team.
Param: before::String
Param: count::String
Param: page::String
Return: Dict{String, Any}
"""
function teamAccessLogs(_api::TeamApi; before=nothing, count=nothing, page=nothing, _mediaType=nothing)
    _ctx = _swaggerinternal_teamAccessLogs(_api; before=before, count=count, page=page, _mediaType=_mediaType)
    Swagger.exec(_ctx)
end

function teamAccessLogs(_api::TeamApi, response_stream::Channel; before=nothing, count=nothing, page=nothing, _mediaType=nothing)
    _ctx = _swaggerinternal_teamAccessLogs(_api; before=before, count=count, page=page, _mediaType=_mediaType)
    Swagger.exec(_ctx, response_stream)
end

function _swaggerinternal_teamBillableInfo(_api::TeamApi; user=nothing, _mediaType=nothing)
    _ctx = Swagger.Ctx(_api.client, "GET", Dict{String, Any}, "/team.billableInfo", ["slackAuth"])
    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

"""

Gets billable users information for the current team.
Param: user::String
Return: Dict{String, Any}
"""
function teamBillableInfo(_api::TeamApi; user=nothing, _mediaType=nothing)
    _ctx = _swaggerinternal_teamBillableInfo(_api; user=user, _mediaType=_mediaType)
    Swagger.exec(_ctx)
end

function teamBillableInfo(_api::TeamApi, response_stream::Channel; user=nothing, _mediaType=nothing)
    _ctx = _swaggerinternal_teamBillableInfo(_api; user=user, _mediaType=_mediaType)
    Swagger.exec(_ctx, response_stream)
end

function _swaggerinternal_teamInfo(_api::TeamApi; team=nothing, _mediaType=nothing)
    _ctx = Swagger.Ctx(_api.client, "GET", Dict{String, Any}, "/team.info", ["slackAuth"])
    Swagger.set_param(_ctx.query, "team", team)  # 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

"""

Gets information about the current team.
Param: team::String
Return: Dict{String, Any}
"""
function teamInfo(_api::TeamApi; team=nothing, _mediaType=nothing)
    _ctx = _swaggerinternal_teamInfo(_api; team=team, _mediaType=_mediaType)
    Swagger.exec(_ctx)
end

function teamInfo(_api::TeamApi, response_stream::Channel; team=nothing, _mediaType=nothing)
    _ctx = _swaggerinternal_teamInfo(_api; team=team, _mediaType=_mediaType)
    Swagger.exec(_ctx, response_stream)
end

function _swaggerinternal_teamIntegrationLogs(_api::TeamApi; app_id=nothing, change_type=nothing, count=nothing, page=nothing, service_id=nothing, user=nothing, _mediaType=nothing)
    _ctx = Swagger.Ctx(_api.client, "GET", Dict{String, Any}, "/team.integrationLogs", ["slackAuth"])
    Swagger.set_param(_ctx.query, "app_id", app_id)  # type String
    Swagger.set_param(_ctx.query, "change_type", change_type)  # type String
    Swagger.set_param(_ctx.query, "count", count)  # type String
    Swagger.set_param(_ctx.query, "page", page)  # type String
    Swagger.set_param(_ctx.query, "service_id", service_id)  # type String
    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

"""

Gets the integration logs for the current team.
Param: app_id::String
Param: change_type::String
Param: count::String
Param: page::String
Param: service_id::String
Param: user::String
Return: Dict{String, Any}
"""
function teamIntegrationLogs(_api::TeamApi; app_id=nothing, change_type=nothing, count=nothing, page=nothing, service_id=nothing, user=nothing, _mediaType=nothing)
    _ctx = _swaggerinternal_teamIntegrationLogs(_api; app_id=app_id, change_type=change_type, count=count, page=page, service_id=service_id, user=user, _mediaType=_mediaType)
    Swagger.exec(_ctx)
end

function teamIntegrationLogs(_api::TeamApi, response_stream::Channel; app_id=nothing, change_type=nothing, count=nothing, page=nothing, service_id=nothing, user=nothing, _mediaType=nothing)
    _ctx = _swaggerinternal_teamIntegrationLogs(_api; app_id=app_id, change_type=change_type, count=count, page=page, service_id=service_id, user=user, _mediaType=_mediaType)
    Swagger.exec(_ctx, response_stream)
end

function _swaggerinternal_teamProfileGet(_api::TeamApi; visibility=nothing, _mediaType=nothing)
    _ctx = Swagger.Ctx(_api.client, "GET", Dict{String, Any}, "/team.profile.get", ["slackAuth"])
    Swagger.set_param(_ctx.query, "visibility", visibility)  # 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

"""

Retrieve a team's profile.
Param: visibility::String
Return: Dict{String, Any}
"""
function teamProfileGet(_api::TeamApi; visibility=nothing, _mediaType=nothing)
    _ctx = _swaggerinternal_teamProfileGet(_api; visibility=visibility, _mediaType=_mediaType)
    Swagger.exec(_ctx)
end

function teamProfileGet(_api::TeamApi, response_stream::Channel; visibility=nothing, _mediaType=nothing)
    _ctx = _swaggerinternal_teamProfileGet(_api; visibility=visibility, _mediaType=_mediaType)
    Swagger.exec(_ctx, response_stream)
end

export teamAccessLogs, teamBillableInfo, teamInfo, teamIntegrationLogs, teamProfileGet
