# do not import all endpoints into this module because that uses a lot of memory and stack frames
# if you need the ability to import all endpoints from this module, import them with
# from inductiva.client.apis.path_to_api import path_to_api

import enum


class PathValues(str, enum.Enum):
    TASKS_SUBMIT = "/tasks/submit"
    TASKS_TASK_ID_INPUT_UPLOADED = "/tasks/{task_id}/input_uploaded"
    TASKS_TASK_ID = "/tasks/{task_id}"
    TASKS = "/tasks"
    TASKS_TASK_ID_STATUS = "/tasks/{task_id}/status"
    TASKS_TASK_ID_KILL = "/tasks/{task_id}/kill"
    TASKS_TASK_ID_REGISTER = "/tasks/{task_id}/register"
    TASKS_TASK_ID_OFFER = "/tasks/{task_id}/offer"
    TASKS_TASK_ID_MESSAGE = "/tasks/{task_id}/message"
    ADMIN_USERS = "/admin/users"
    ADMIN_USERS_EMAIL_TERMS_AND_CONDITIONS = "/admin/users/{email}/terms_and_conditions"
    ADMIN_USERS_USERNAME_ORGANIZATION = "/admin/users/{username}/organization"
    ADMIN_USERS_USERNAME_CREDITS = "/admin/users/{username}/credits"
    ADMIN_USER_EMAILS = "/admin/user_emails"
    ADMIN_USER_BUCKETS = "/admin/user_buckets"
    ADMIN_USERS_EMAIL_API_KEY = "/admin/users/{email}/api_key"
    ADMIN_USERS_EMAIL = "/admin/users/{email}"
    ADMIN_USERS_USERNAME_STORAGE_SIZE_FS = "/admin/users/{username}/storage_size_fs"
    ADMIN_USERS_USERNAME_STORAGE_SIZE = "/admin/users/{username}/storage_size"
    ADMIN_USERS_USERNAME_TASKS = "/admin/users/{username}/tasks"
    ADMIN_USERS_USERNAME_CAPABILITIES = "/admin/users/{username}/capabilities"
    ADMIN_GROUPS = "/admin/groups"
    ADMIN_GROUPS_ACTIVE = "/admin/groups/active"
    ADMIN_GROUPS_ID = "/admin/groups/{id}"
    ADMIN_ACTIVE_TASKS = "/admin/active_tasks"
    ADMIN_GROUPS_MACHINE_GROUP_ID_TERMINATE = "/admin/groups/{machine_group_id}/terminate"
    ADMIN_ORGANIZATIONS = "/admin/organizations"
    ADMIN_ORGANIZATIONS_ORGANIZATION_ID = "/admin/organizations/{organization_id}"
    ADMIN_ORGANIZATIONS_COSTS = "/admin/organizations/costs"
    ADMIN_TIERS = "/admin/tiers"
    ADMIN_TERMINATE_MACHINE_GROUPS_CREDITS_EXHAUSTED = "/admin/terminate_machine_groups_credits_exhausted"
    ADMIN_IMPORT_PROVIDER_COSTS = "/admin/import_provider_costs"
    ADMIN_MACHINE_ID_EVENT = "/admin/{machine_id}/event"
    ADMIN_USERS_USERNAME_COSTS_FEE_PERCENTAGE = "/admin/users/{username}/costs_fee_percentage"
    ADMIN_ORGANIZATIONS_ORGANIZATION_ID_COSTS_FEE_PERCENTAGE = "/admin/organizations/{organization_id}/costs_fee_percentage"
    ADMIN_TOPUPS = "/admin/top-ups"
    ADMIN_TASKS = "/admin/tasks"
    ADMIN_USERS_EMAIL_STRIPE_CUSTOMER_ID = "/admin/users/{email}/stripe_customer_id"
    ADMIN_FEATUREFLAGS_NAME = "/admin/feature-flags/{name}"
    ADMIN_FEATUREFLAGS_ = "/admin/feature-flags/"
    TASKRUNNER_REGISTER = "/task-runner/register"
    TASKRUNNER_MACHINE_ID = "/task-runner/{machine_id}"
    TASKRUNNER_MACHINE_ID_TASK = "/task-runner/{machine_id}/task"
    TASKRUNNER_MACHINE_ID_TASK_TASK_ID_MESSAGE = "/task-runner/{machine_id}/task/{task_id}/message"
    TASKRUNNER_MACHINE_ID_TASK_TASK_ID_MESSAGE_UNBLOCK = "/task-runner/{machine_id}/task/{task_id}/message/unblock"
    TASKRUNNER_MACHINE_ID_EVENT = "/task-runner/{machine_id}/event"
    TASKRUNNER_MACHINE_ID_TASK_TASK_ID_OPERATION = "/task-runner/{machine_id}/task/{task_id}/operation"
    TASKRUNNER_MACHINE_ID_TASK_TASK_ID_OPERATION_OPERATION_ID_DONE = "/task-runner/{machine_id}/task/{task_id}/operation/{operation_id}/done"
    TASKRUNNER_MACHINE_ID_TASK_TASK_ID_METRIC = "/task-runner/{machine_id}/task/{task_id}/metric"
    TASKRUNNER_MACHINE_ID_RESIZE_DISK = "/task-runner/{machine_id}/resize_disk"
    TASKRUNNER_MACHINE_ID_RESIZE_DISK_DONE = "/task-runner/{machine_id}/resize_disk_done"
    COMPUTE_GROUP = "/compute/group"
    COMPUTE_GROUP_START = "/compute/group/start"
    COMPUTE_PRICE = "/compute/price"
    COMPUTE_GROUPS = "/compute/groups"
    COMPUTE_GROUPS_HISTORY = "/compute/groups/history"
    COMPUTE_MACHINE_TYPES = "/compute/machine_types"
    COMPUTE_GROUP_NAME = "/compute/group/{name}"
    COMPUTE_GROUP_MACHINE_GROUP_ID_SHARING = "/compute/group/{machine_group_id}/sharing"
    STORAGE_SIZE = "/storage/size"
    STORAGE_COST = "/storage/cost"
    STORAGE_CONTENTS = "/storage/contents"
    STORAGE_ZIPCONTENTS = "/storage/zip-contents"
    STORAGE_SIGNEDURLS = "/storage/signed-urls"
    STORAGE_INPUT_NOTIFY = "/storage/input_notify"
    STORAGE_INPUT_REMOTE = "/storage/input_remote"
    STORAGE_ = "/storage/"
    STORAGE_COPY = "/storage/copy"
    STORAGE_OPERATIONS_OPERATION_ID = "/storage/operations/{operation_id}"
    STORAGE_OPERATIONS = "/storage/operations"
    STORAGE_EXPORT_MULTIPART = "/storage/export_multipart"
    STORAGE_UPDATE_OPERATION_STATUS = "/storage/update_operation_status"
    VERSION = "/version"
    VERSIONCHECK = "/version-check"
    USERS_QUOTAS = "/users/quotas"
    USERS_INFO = "/users/info"
    USERS_CAPABILITIES = "/users/capabilities"
    USERS_COSTS = "/users/costs"
    USERS_ORGANIZATION_COSTS = "/users/organization/costs"
    USERS_TOPUPS = "/users/top-ups"
    PROJECTS = "/projects"
    PROJECTS_NAME = "/projects/{name}"
    PROJECTS_NAME_TASK_TASK_ID_ADD = "/projects/{name}/task/{task_id}/add"
    PROJECTS_NAME_TASK_TASK_ID_REMOVE = "/projects/{name}/task/{task_id}/remove"
    METRICS_USERS_USERNAME_ACTIVITY = "/metrics/users/{username}/activity"
    METRICS_USERS_USERNAME_COST_OVER_TIME = "/metrics/users/{username}/cost_over_time"
    METRICS_USERS_USERNAME_TASK_STATUS_OVERVIEW = "/metrics/users/{username}/task_status_overview"
    METRICS_USERS_USERNAME_COMPUTATION_TIME_TREND = "/metrics/users/{username}/computation_time_trend"
    METRICS_USERS_USERNAME_TASKS_OVERVIEW = "/metrics/users/{username}/tasks_overview"
    METRICS_USERS_USERNAME_MOST_USED_MACHINE_TYPES = "/metrics/users/{username}/most_used_machine_types"
    METRICS_USERS_USERNAME_MOST_USED_SIMULATORS_OVERVIEW = "/metrics/users/{username}/most_used_simulators_overview"
    METRICS_USAGE_STATISTICS = "/metrics/usage_statistics"
