torc 0.23.0

Workflow management system
# This file was generated by the Julia OpenAPI Code Generator
# Do not modify this file directly. Modify the OpenAPI specification instead.

struct AccessControlApi <: OpenAPI.APIClientImpl
    client::OpenAPI.Clients.Client
end

"""
The default API base path for APIs in `AccessControlApi`.
This can be used to construct the `OpenAPI.Clients.Client` instance.
"""
basepath(::Type{ AccessControlApi }) = "http://localhost/torc-service/v1"

const _returntypes_add_user_to_group_AccessControlApi = Dict{Regex,Type}(
    Regex("^" * replace("200", "x"=>".") * "\$") => UserGroupMembershipModel,
)

function _oacinternal_add_user_to_group(_api::AccessControlApi, id::Int64, user_group_membership_model::UserGroupMembershipModel; _mediaType=nothing)
    _ctx = OpenAPI.Clients.Ctx(_api.client, "POST", _returntypes_add_user_to_group_AccessControlApi, "/access_groups/{id}/members", [], user_group_membership_model)
    OpenAPI.Clients.set_param(_ctx.path, "id", id)  # type Int64
    OpenAPI.Clients.set_header_accept(_ctx, ["application/json", ])
    OpenAPI.Clients.set_header_content_type(_ctx, (_mediaType === nothing) ? ["application/json", ] : [_mediaType])
    return _ctx
end

@doc raw"""Params:
- id::Int64 (required)
- user_group_membership_model::UserGroupMembershipModel (required)

Return: UserGroupMembershipModel, OpenAPI.Clients.ApiResponse
"""
function add_user_to_group(_api::AccessControlApi, id::Int64, user_group_membership_model::UserGroupMembershipModel; _mediaType=nothing)
    _ctx = _oacinternal_add_user_to_group(_api, id, user_group_membership_model; _mediaType=_mediaType)
    return OpenAPI.Clients.exec(_ctx)
end

function add_user_to_group(_api::AccessControlApi, response_stream::Channel, id::Int64, user_group_membership_model::UserGroupMembershipModel; _mediaType=nothing)
    _ctx = _oacinternal_add_user_to_group(_api, id, user_group_membership_model; _mediaType=_mediaType)
    return OpenAPI.Clients.exec(_ctx, response_stream)
end

const _returntypes_add_workflow_to_group_AccessControlApi = Dict{Regex,Type}(
    Regex("^" * replace("200", "x"=>".") * "\$") => WorkflowAccessGroupModel,
)

function _oacinternal_add_workflow_to_group(_api::AccessControlApi, id::Int64, group_id::Int64; _mediaType=nothing)
    _ctx = OpenAPI.Clients.Ctx(_api.client, "POST", _returntypes_add_workflow_to_group_AccessControlApi, "/workflows/{id}/access_groups/{group_id}", [])
    OpenAPI.Clients.set_param(_ctx.path, "id", id)  # type Int64
    OpenAPI.Clients.set_param(_ctx.path, "group_id", group_id)  # type Int64
    OpenAPI.Clients.set_header_accept(_ctx, ["application/json", ])
    OpenAPI.Clients.set_header_content_type(_ctx, (_mediaType === nothing) ? [] : [_mediaType])
    return _ctx
end

@doc raw"""Params:
- id::Int64 (required)
- group_id::Int64 (required)

Return: WorkflowAccessGroupModel, OpenAPI.Clients.ApiResponse
"""
function add_workflow_to_group(_api::AccessControlApi, id::Int64, group_id::Int64; _mediaType=nothing)
    _ctx = _oacinternal_add_workflow_to_group(_api, id, group_id; _mediaType=_mediaType)
    return OpenAPI.Clients.exec(_ctx)
end

function add_workflow_to_group(_api::AccessControlApi, response_stream::Channel, id::Int64, group_id::Int64; _mediaType=nothing)
    _ctx = _oacinternal_add_workflow_to_group(_api, id, group_id; _mediaType=_mediaType)
    return OpenAPI.Clients.exec(_ctx, response_stream)
end

const _returntypes_check_workflow_access_AccessControlApi = Dict{Regex,Type}(
    Regex("^" * replace("200", "x"=>".") * "\$") => AccessCheckResponse,
)

function _oacinternal_check_workflow_access(_api::AccessControlApi, workflow_id::Int64, user_name::String; _mediaType=nothing)
    _ctx = OpenAPI.Clients.Ctx(_api.client, "GET", _returntypes_check_workflow_access_AccessControlApi, "/access_check/{workflow_id}/{user_name}", [])
    OpenAPI.Clients.set_param(_ctx.path, "workflow_id", workflow_id)  # type Int64
    OpenAPI.Clients.set_param(_ctx.path, "user_name", user_name)  # type String
    OpenAPI.Clients.set_header_accept(_ctx, ["application/json", ])
    OpenAPI.Clients.set_header_content_type(_ctx, (_mediaType === nothing) ? [] : [_mediaType])
    return _ctx
end

@doc raw"""Params:
- workflow_id::Int64 (required)
- user_name::String (required)

Return: AccessCheckResponse, OpenAPI.Clients.ApiResponse
"""
function check_workflow_access(_api::AccessControlApi, workflow_id::Int64, user_name::String; _mediaType=nothing)
    _ctx = _oacinternal_check_workflow_access(_api, workflow_id, user_name; _mediaType=_mediaType)
    return OpenAPI.Clients.exec(_ctx)
end

function check_workflow_access(_api::AccessControlApi, response_stream::Channel, workflow_id::Int64, user_name::String; _mediaType=nothing)
    _ctx = _oacinternal_check_workflow_access(_api, workflow_id, user_name; _mediaType=_mediaType)
    return OpenAPI.Clients.exec(_ctx, response_stream)
end

const _returntypes_create_access_group_AccessControlApi = Dict{Regex,Type}(
    Regex("^" * replace("200", "x"=>".") * "\$") => AccessGroupModel,
)

function _oacinternal_create_access_group(_api::AccessControlApi, access_group_model::AccessGroupModel; _mediaType=nothing)
    _ctx = OpenAPI.Clients.Ctx(_api.client, "POST", _returntypes_create_access_group_AccessControlApi, "/access_groups", [], access_group_model)
    OpenAPI.Clients.set_header_accept(_ctx, ["application/json", ])
    OpenAPI.Clients.set_header_content_type(_ctx, (_mediaType === nothing) ? ["application/json", ] : [_mediaType])
    return _ctx
end

@doc raw"""Params:
- access_group_model::AccessGroupModel (required)

Return: AccessGroupModel, OpenAPI.Clients.ApiResponse
"""
function create_access_group(_api::AccessControlApi, access_group_model::AccessGroupModel; _mediaType=nothing)
    _ctx = _oacinternal_create_access_group(_api, access_group_model; _mediaType=_mediaType)
    return OpenAPI.Clients.exec(_ctx)
end

function create_access_group(_api::AccessControlApi, response_stream::Channel, access_group_model::AccessGroupModel; _mediaType=nothing)
    _ctx = _oacinternal_create_access_group(_api, access_group_model; _mediaType=_mediaType)
    return OpenAPI.Clients.exec(_ctx, response_stream)
end

const _returntypes_delete_access_group_AccessControlApi = Dict{Regex,Type}(
    Regex("^" * replace("200", "x"=>".") * "\$") => AccessGroupModel,
)

function _oacinternal_delete_access_group(_api::AccessControlApi, id::Int64; _mediaType=nothing)
    _ctx = OpenAPI.Clients.Ctx(_api.client, "DELETE", _returntypes_delete_access_group_AccessControlApi, "/access_groups/{id}", [])
    OpenAPI.Clients.set_param(_ctx.path, "id", id)  # type Int64
    OpenAPI.Clients.set_header_accept(_ctx, ["application/json", ])
    OpenAPI.Clients.set_header_content_type(_ctx, (_mediaType === nothing) ? [] : [_mediaType])
    return _ctx
end

@doc raw"""Params:
- id::Int64 (required)

Return: AccessGroupModel, OpenAPI.Clients.ApiResponse
"""
function delete_access_group(_api::AccessControlApi, id::Int64; _mediaType=nothing)
    _ctx = _oacinternal_delete_access_group(_api, id; _mediaType=_mediaType)
    return OpenAPI.Clients.exec(_ctx)
end

function delete_access_group(_api::AccessControlApi, response_stream::Channel, id::Int64; _mediaType=nothing)
    _ctx = _oacinternal_delete_access_group(_api, id; _mediaType=_mediaType)
    return OpenAPI.Clients.exec(_ctx, response_stream)
end

const _returntypes_get_access_group_AccessControlApi = Dict{Regex,Type}(
    Regex("^" * replace("200", "x"=>".") * "\$") => AccessGroupModel,
)

function _oacinternal_get_access_group(_api::AccessControlApi, id::Int64; _mediaType=nothing)
    _ctx = OpenAPI.Clients.Ctx(_api.client, "GET", _returntypes_get_access_group_AccessControlApi, "/access_groups/{id}", [])
    OpenAPI.Clients.set_param(_ctx.path, "id", id)  # type Int64
    OpenAPI.Clients.set_header_accept(_ctx, ["application/json", ])
    OpenAPI.Clients.set_header_content_type(_ctx, (_mediaType === nothing) ? [] : [_mediaType])
    return _ctx
end

@doc raw"""Params:
- id::Int64 (required)

Return: AccessGroupModel, OpenAPI.Clients.ApiResponse
"""
function get_access_group(_api::AccessControlApi, id::Int64; _mediaType=nothing)
    _ctx = _oacinternal_get_access_group(_api, id; _mediaType=_mediaType)
    return OpenAPI.Clients.exec(_ctx)
end

function get_access_group(_api::AccessControlApi, response_stream::Channel, id::Int64; _mediaType=nothing)
    _ctx = _oacinternal_get_access_group(_api, id; _mediaType=_mediaType)
    return OpenAPI.Clients.exec(_ctx, response_stream)
end

const _returntypes_list_access_groups_AccessControlApi = Dict{Regex,Type}(
    Regex("^" * replace("200", "x"=>".") * "\$") => ListAccessGroupsResponse,
)

function _oacinternal_list_access_groups(_api::AccessControlApi; offset=nothing, limit=nothing, _mediaType=nothing)
    _ctx = OpenAPI.Clients.Ctx(_api.client, "GET", _returntypes_list_access_groups_AccessControlApi, "/access_groups", [])
    OpenAPI.Clients.set_param(_ctx.query, "offset", offset; style="form", is_explode=true)  # type Int64
    OpenAPI.Clients.set_param(_ctx.query, "limit", limit; style="form", is_explode=true)  # type Int64
    OpenAPI.Clients.set_header_accept(_ctx, ["application/json", ])
    OpenAPI.Clients.set_header_content_type(_ctx, (_mediaType === nothing) ? [] : [_mediaType])
    return _ctx
end

@doc raw"""Params:
- offset::Int64
- limit::Int64

Return: ListAccessGroupsResponse, OpenAPI.Clients.ApiResponse
"""
function list_access_groups(_api::AccessControlApi; offset=nothing, limit=nothing, _mediaType=nothing)
    _ctx = _oacinternal_list_access_groups(_api; offset=offset, limit=limit, _mediaType=_mediaType)
    return OpenAPI.Clients.exec(_ctx)
end

function list_access_groups(_api::AccessControlApi, response_stream::Channel; offset=nothing, limit=nothing, _mediaType=nothing)
    _ctx = _oacinternal_list_access_groups(_api; offset=offset, limit=limit, _mediaType=_mediaType)
    return OpenAPI.Clients.exec(_ctx, response_stream)
end

const _returntypes_list_group_members_AccessControlApi = Dict{Regex,Type}(
    Regex("^" * replace("200", "x"=>".") * "\$") => ListUserGroupMembershipsResponse,
)

function _oacinternal_list_group_members(_api::AccessControlApi, id::Int64; offset=nothing, limit=nothing, _mediaType=nothing)
    _ctx = OpenAPI.Clients.Ctx(_api.client, "GET", _returntypes_list_group_members_AccessControlApi, "/access_groups/{id}/members", [])
    OpenAPI.Clients.set_param(_ctx.path, "id", id)  # type Int64
    OpenAPI.Clients.set_param(_ctx.query, "offset", offset; style="form", is_explode=true)  # type Int64
    OpenAPI.Clients.set_param(_ctx.query, "limit", limit; style="form", is_explode=true)  # type Int64
    OpenAPI.Clients.set_header_accept(_ctx, ["application/json", ])
    OpenAPI.Clients.set_header_content_type(_ctx, (_mediaType === nothing) ? [] : [_mediaType])
    return _ctx
end

@doc raw"""Params:
- id::Int64 (required)
- offset::Int64
- limit::Int64

Return: ListUserGroupMembershipsResponse, OpenAPI.Clients.ApiResponse
"""
function list_group_members(_api::AccessControlApi, id::Int64; offset=nothing, limit=nothing, _mediaType=nothing)
    _ctx = _oacinternal_list_group_members(_api, id; offset=offset, limit=limit, _mediaType=_mediaType)
    return OpenAPI.Clients.exec(_ctx)
end

function list_group_members(_api::AccessControlApi, response_stream::Channel, id::Int64; offset=nothing, limit=nothing, _mediaType=nothing)
    _ctx = _oacinternal_list_group_members(_api, id; offset=offset, limit=limit, _mediaType=_mediaType)
    return OpenAPI.Clients.exec(_ctx, response_stream)
end

const _returntypes_list_user_groups_AccessControlApi = Dict{Regex,Type}(
    Regex("^" * replace("200", "x"=>".") * "\$") => ListAccessGroupsResponse,
)

function _oacinternal_list_user_groups(_api::AccessControlApi, user_name::String; offset=nothing, limit=nothing, _mediaType=nothing)
    _ctx = OpenAPI.Clients.Ctx(_api.client, "GET", _returntypes_list_user_groups_AccessControlApi, "/users/{user_name}/groups", [])
    OpenAPI.Clients.set_param(_ctx.path, "user_name", user_name)  # type String
    OpenAPI.Clients.set_param(_ctx.query, "offset", offset; style="form", is_explode=true)  # type Int64
    OpenAPI.Clients.set_param(_ctx.query, "limit", limit; style="form", is_explode=true)  # type Int64
    OpenAPI.Clients.set_header_accept(_ctx, ["application/json", ])
    OpenAPI.Clients.set_header_content_type(_ctx, (_mediaType === nothing) ? [] : [_mediaType])
    return _ctx
end

@doc raw"""Params:
- user_name::String (required)
- offset::Int64
- limit::Int64

Return: ListAccessGroupsResponse, OpenAPI.Clients.ApiResponse
"""
function list_user_groups(_api::AccessControlApi, user_name::String; offset=nothing, limit=nothing, _mediaType=nothing)
    _ctx = _oacinternal_list_user_groups(_api, user_name; offset=offset, limit=limit, _mediaType=_mediaType)
    return OpenAPI.Clients.exec(_ctx)
end

function list_user_groups(_api::AccessControlApi, response_stream::Channel, user_name::String; offset=nothing, limit=nothing, _mediaType=nothing)
    _ctx = _oacinternal_list_user_groups(_api, user_name; offset=offset, limit=limit, _mediaType=_mediaType)
    return OpenAPI.Clients.exec(_ctx, response_stream)
end

const _returntypes_list_workflow_groups_AccessControlApi = Dict{Regex,Type}(
    Regex("^" * replace("200", "x"=>".") * "\$") => ListAccessGroupsResponse,
)

function _oacinternal_list_workflow_groups(_api::AccessControlApi, id::Int64; offset=nothing, limit=nothing, _mediaType=nothing)
    _ctx = OpenAPI.Clients.Ctx(_api.client, "GET", _returntypes_list_workflow_groups_AccessControlApi, "/workflows/{id}/access_groups", [])
    OpenAPI.Clients.set_param(_ctx.path, "id", id)  # type Int64
    OpenAPI.Clients.set_param(_ctx.query, "offset", offset; style="form", is_explode=true)  # type Int64
    OpenAPI.Clients.set_param(_ctx.query, "limit", limit; style="form", is_explode=true)  # type Int64
    OpenAPI.Clients.set_header_accept(_ctx, ["application/json", ])
    OpenAPI.Clients.set_header_content_type(_ctx, (_mediaType === nothing) ? [] : [_mediaType])
    return _ctx
end

@doc raw"""Params:
- id::Int64 (required)
- offset::Int64
- limit::Int64

Return: ListAccessGroupsResponse, OpenAPI.Clients.ApiResponse
"""
function list_workflow_groups(_api::AccessControlApi, id::Int64; offset=nothing, limit=nothing, _mediaType=nothing)
    _ctx = _oacinternal_list_workflow_groups(_api, id; offset=offset, limit=limit, _mediaType=_mediaType)
    return OpenAPI.Clients.exec(_ctx)
end

function list_workflow_groups(_api::AccessControlApi, response_stream::Channel, id::Int64; offset=nothing, limit=nothing, _mediaType=nothing)
    _ctx = _oacinternal_list_workflow_groups(_api, id; offset=offset, limit=limit, _mediaType=_mediaType)
    return OpenAPI.Clients.exec(_ctx, response_stream)
end

const _returntypes_reload_auth_AccessControlApi = Dict{Regex,Type}(
    Regex("^" * replace("200", "x"=>".") * "\$") => ReloadAuthResponse,
)

function _oacinternal_reload_auth(_api::AccessControlApi; _mediaType=nothing)
    _ctx = OpenAPI.Clients.Ctx(_api.client, "POST", _returntypes_reload_auth_AccessControlApi, "/admin/reload-auth", [])
    OpenAPI.Clients.set_header_accept(_ctx, ["application/json", ])
    OpenAPI.Clients.set_header_content_type(_ctx, (_mediaType === nothing) ? [] : [_mediaType])
    return _ctx
end

@doc raw"""Params:

Return: ReloadAuthResponse, OpenAPI.Clients.ApiResponse
"""
function reload_auth(_api::AccessControlApi; _mediaType=nothing)
    _ctx = _oacinternal_reload_auth(_api; _mediaType=_mediaType)
    return OpenAPI.Clients.exec(_ctx)
end

function reload_auth(_api::AccessControlApi, response_stream::Channel; _mediaType=nothing)
    _ctx = _oacinternal_reload_auth(_api; _mediaType=_mediaType)
    return OpenAPI.Clients.exec(_ctx, response_stream)
end

const _returntypes_remove_user_from_group_AccessControlApi = Dict{Regex,Type}(
    Regex("^" * replace("200", "x"=>".") * "\$") => UserGroupMembershipModel,
)

function _oacinternal_remove_user_from_group(_api::AccessControlApi, id::Int64, user_name::String; _mediaType=nothing)
    _ctx = OpenAPI.Clients.Ctx(_api.client, "DELETE", _returntypes_remove_user_from_group_AccessControlApi, "/access_groups/{id}/members/{user_name}", [])
    OpenAPI.Clients.set_param(_ctx.path, "id", id)  # type Int64
    OpenAPI.Clients.set_param(_ctx.path, "user_name", user_name)  # type String
    OpenAPI.Clients.set_header_accept(_ctx, ["application/json", ])
    OpenAPI.Clients.set_header_content_type(_ctx, (_mediaType === nothing) ? [] : [_mediaType])
    return _ctx
end

@doc raw"""Params:
- id::Int64 (required)
- user_name::String (required)

Return: UserGroupMembershipModel, OpenAPI.Clients.ApiResponse
"""
function remove_user_from_group(_api::AccessControlApi, id::Int64, user_name::String; _mediaType=nothing)
    _ctx = _oacinternal_remove_user_from_group(_api, id, user_name; _mediaType=_mediaType)
    return OpenAPI.Clients.exec(_ctx)
end

function remove_user_from_group(_api::AccessControlApi, response_stream::Channel, id::Int64, user_name::String; _mediaType=nothing)
    _ctx = _oacinternal_remove_user_from_group(_api, id, user_name; _mediaType=_mediaType)
    return OpenAPI.Clients.exec(_ctx, response_stream)
end

const _returntypes_remove_workflow_from_group_AccessControlApi = Dict{Regex,Type}(
    Regex("^" * replace("200", "x"=>".") * "\$") => WorkflowAccessGroupModel,
)

function _oacinternal_remove_workflow_from_group(_api::AccessControlApi, id::Int64, group_id::Int64; _mediaType=nothing)
    _ctx = OpenAPI.Clients.Ctx(_api.client, "DELETE", _returntypes_remove_workflow_from_group_AccessControlApi, "/workflows/{id}/access_groups/{group_id}", [])
    OpenAPI.Clients.set_param(_ctx.path, "id", id)  # type Int64
    OpenAPI.Clients.set_param(_ctx.path, "group_id", group_id)  # type Int64
    OpenAPI.Clients.set_header_accept(_ctx, ["application/json", ])
    OpenAPI.Clients.set_header_content_type(_ctx, (_mediaType === nothing) ? [] : [_mediaType])
    return _ctx
end

@doc raw"""Params:
- id::Int64 (required)
- group_id::Int64 (required)

Return: WorkflowAccessGroupModel, OpenAPI.Clients.ApiResponse
"""
function remove_workflow_from_group(_api::AccessControlApi, id::Int64, group_id::Int64; _mediaType=nothing)
    _ctx = _oacinternal_remove_workflow_from_group(_api, id, group_id; _mediaType=_mediaType)
    return OpenAPI.Clients.exec(_ctx)
end

function remove_workflow_from_group(_api::AccessControlApi, response_stream::Channel, id::Int64, group_id::Int64; _mediaType=nothing)
    _ctx = _oacinternal_remove_workflow_from_group(_api, id, group_id; _mediaType=_mediaType)
    return OpenAPI.Clients.exec(_ctx, response_stream)
end

export add_user_to_group
export add_workflow_to_group
export check_workflow_access
export create_access_group
export delete_access_group
export get_access_group
export list_access_groups
export list_group_members
export list_user_groups
export list_workflow_groups
export reload_auth
export remove_user_from_group
export remove_workflow_from_group