# Role x route refusal matrix (#3441) — the ENTRY gate (`has_permission`) only.
#
# Generated by tests/apps/access/test_role_route_matrix.py. Regenerate with
#     TRUEPPM_UPDATE_ROLE_MATRIX=1 pytest tests/apps/access/test_role_route_matrix.py
# and read the diff — that diff is the entire point of the file.
#
# One line per (method, route, action). The mask is seven verdicts in this order:
#
#     anon  non-member  Viewer  Member  Scheduler  Admin  Owner
#
# `+` the chain admits this principal, `-` it refuses, `!` it raised.
#
# A `-` has THREE causes, and `-------` does not mean "maximally safe":
#   1. a permission class refused;
#   2. the AUTHENTICATOR refused — a view whose get_authenticators() yields no human
#      authenticator (the project-API-token ingest endpoints) sees an anonymous
#      request from all seven. The token surface is pinned separately, in
#      token_write_surface.txt;
#   3. the FIXTURE could not build the scope — a route gated on something other than
#      a project or program (a team, a workspace role, a superuser) gets a random
#      UUID for that kwarg, so its gate is refused rather than exercised. Change
#      detection still holds for those rows; discovery does not.
#
# Read `-----++` with the scope in mind too. On a project-scoped route it means
# Admin+ on THAT project. On an install-global route gated by IsOrgAdmin it means
# Admin on ANY live project — and nothing gates project creation (#3569), so that
# mask is reachable by any authenticated account in one request.
#
# The five roles hold that role on the fixture project AND the fixture program.
# A `+` here means only that the request gets past `has_permission`; object-level
# and in-body checks are not modeled (see the module docstring). A `+` in the
# non-member column on a route that names a project is therefore not automatically
# a hole — but it IS a route whose whole defense is downstream, which is the shape
# every one of #2508 / #2551 / #3413 / #3439 took.
-++++++  DELETE api/v1/^acceptance-criteria/(?P<pk>[^/.]+)/$::destroy
-----++  DELETE api/v1/^calendars/(?P<pk>[^/.]+)/$::destroy
-++++++  DELETE api/v1/^dependencies/(?P<pk>[^/.]+)/$::destroy
-++++++  DELETE api/v1/^programs/(?P<pk>[^/.]+)/$::destroy
-++++++  DELETE api/v1/^programs/(?P<pk>[^/.]+)/pin/$::pin
-----++  DELETE api/v1/^programs/(?P<program_pk>[^/.]+)/webhooks/(?P<pk>[^/.]+)/$::destroy
-++++++  DELETE api/v1/^project-resources/(?P<pk>[^/.]+)/$::destroy
-++++++  DELETE api/v1/^projects/(?P<pk>[^/.]+)/$::destroy
-++++++  DELETE api/v1/^projects/(?P<pk>[^/.]+)/pin/$::pin
-----++  DELETE api/v1/^projects/(?P<project_pk>[^/.]+)/webhooks/(?P<pk>[^/.]+)/$::destroy
-++++++  DELETE api/v1/^recurrence-rules/(?P<pk>[^/.]+)/$::destroy
----+++  DELETE api/v1/^resource-skills/(?P<pk>[^/.]+)/$::destroy
-------  DELETE api/v1/^resources/(?P<pk>[^/.]+)/$::destroy
----+++  DELETE api/v1/^skills/(?P<pk>[^/.]+)/$::destroy
-++++++  DELETE api/v1/^task-relations/(?P<pk>[^/.]+)/$::destroy
-++++++  DELETE api/v1/^task-resources/(?P<pk>[^/.]+)/$::destroy
-++++++  DELETE api/v1/^task-skill-requirements/(?P<pk>[^/.]+)/$::destroy
-++++++  DELETE api/v1/^tasks/(?P<pk>[^/.]+)/$::destroy
-----++  DELETE api/v1/calendars/<calendar_pk>/exceptions/<pk>/::destroy
-++++++  DELETE api/v1/me/api-tokens/<pk>/::destroy
-++++++  DELETE api/v1/me/connections/<slug:source>/::delete
-++++++  DELETE api/v1/me/credentials/<slug:provider>/::destroy
-++++++  DELETE api/v1/me/time-entries/<uuid:pk>/::delete
-++++++  DELETE api/v1/me/timesheets/<str:week_start>/submit::delete
-----++  DELETE api/v1/programs/<program_pk>/api-tokens/<pk>/::destroy
---++++  DELETE api/v1/programs/<program_pk>/backlog-items/<pk>/::destroy
-----++  DELETE api/v1/programs/<program_pk>/ceremonies/<pk>/::destroy
-----++  DELETE api/v1/programs/<uuid:program_pk>/external-stakeholders/<uuid:pk>/::destroy
--+++++  DELETE api/v1/programs/<uuid:program_pk>/members/<uuid:pk>/::destroy
------+  DELETE api/v1/programs/<uuid:program_pk>/mention-groups/<uuid:pk>/::destroy
--+++++  DELETE api/v1/projects/<pk>/board-views/<view_pk>/::delete
-----++  DELETE api/v1/projects/<project_pk>/api-tokens/<pk>/::destroy
------+  DELETE api/v1/projects/<project_pk>/baselines/<pk>/::destroy
----+++  DELETE api/v1/projects/<project_pk>/fields/<pk>/::destroy
-----++  DELETE api/v1/projects/<project_pk>/labels/<pk>/::destroy
-----++  DELETE api/v1/projects/<project_pk>/phases/<pk>/::destroy
------+  DELETE api/v1/projects/<project_pk>/risks/<pk>/::destroy
---++++  DELETE api/v1/projects/<project_pk>/tasks/<task_pk>/attachments/<pk>/::destroy
---++++  DELETE api/v1/projects/<project_pk>/tasks/<task_pk>/comments/<comment_pk>/reactions/<pk>/::destroy
---++++  DELETE api/v1/projects/<project_pk>/tasks/<task_pk>/comments/<pk>/::destroy
---++++  DELETE api/v1/projects/<project_pk>/tasks/<task_pk>/comments/<pk>/acknowledge/::acknowledge
-++++++  DELETE api/v1/projects/<project_pk>/tasks/<task_pk>/field-values/<field_id>/::delete
-++++++  DELETE api/v1/projects/<project_pk>/tasks/<task_pk>/labels/::delete
-++++++  DELETE api/v1/projects/<project_pk>/tasks/<task_pk>/labels/<label_id>/::delete
---++++  DELETE api/v1/projects/<project_pk>/tasks/<task_pk>/links/<pk>/::destroy
---++++  DELETE api/v1/projects/<project_pk>/tasks/<task_pk>/notes/<pk>/::destroy
--+++++  DELETE api/v1/projects/<uuid:project_pk>/members/<uuid:pk>/::destroy
--+++++  DELETE api/v1/projects/<uuid:project_pk>/mention-groups/<uuid:pk>/::destroy
-++++++  DELETE api/v1/retro-items/<pk>/::destroy
-++++++  DELETE api/v1/sprints/<pk>/::destroy
-------  DELETE api/v1/workspace/::delete
-------  DELETE api/v1/workspace/groups/<uuid:group_id>/::delete
-------  DELETE api/v1/workspace/groups/<uuid:group_id>/members/::delete
-------  DELETE api/v1/workspace/groups/<uuid:group_id>/members/<int:user_id>/::delete
-------  DELETE api/v1/workspace/groups/<uuid:group_id>/projects/::delete
-------  DELETE api/v1/workspace/groups/<uuid:group_id>/projects/<uuid:project_id>/::delete
-------  DELETE api/v1/workspace/invites/<uuid:invite_id>/::delete
-------  DELETE api/v1/workspace/logo/::delete
-------  DELETE api/v1/workspace/members/<int:user_id>/::delete
-------  DELETE api/v1/workspace/sso/providers/<slug:slug>/::delete
+++++++  GET api/v1/::get
-++++++  GET api/v1/^acceptance-criteria/$::list
-++++++  GET api/v1/^acceptance-criteria/(?P<pk>[^/.]+)/$::retrieve
-------  GET api/v1/^admin/failed-tasks/$::list
-------  GET api/v1/^admin/failed-tasks/(?P<pk>[^/.]+)/$::retrieve
-++++++  GET api/v1/^calendars/$::list
-++++++  GET api/v1/^calendars/(?P<pk>[^/.]+)/$::retrieve
-++++++  GET api/v1/^cascade-classification-operations/$::list
-++++++  GET api/v1/^cascade-classification-operations/(?P<pk>[^/.]+)/$::retrieve
-++++++  GET api/v1/^dependencies/$::list
-++++++  GET api/v1/^dependencies/(?P<pk>[^/.]+)/$::retrieve
-++++++  GET api/v1/^paste-many-operations/$::list
-++++++  GET api/v1/^paste-many-operations/(?P<pk>[^/.]+)/$::retrieve
-++++++  GET api/v1/^programs/$::list
-++++++  GET api/v1/^programs/(?P<pk>[^/.]+)/$::retrieve
-++++++  GET api/v1/^programs/(?P<pk>[^/.]+)/export/$::export
-++++++  GET api/v1/^programs/(?P<pk>[^/.]+)/export/jobs/$::export_jobs
-++++++  GET api/v1/^programs/(?P<pk>[^/.]+)/export/jobs/(?P<job_id>[0-9a-f-]{36})/$::export_job_detail
-++++++  GET api/v1/^programs/(?P<pk>[^/.]+)/export/jobs/(?P<job_id>[0-9a-f-]{36})/download/$::export_job_download
-++++++  GET api/v1/^programs/(?P<pk>[^/.]+)/import/jobs/(?P<job_id>[0-9a-f-]{36})/$::import_job_detail
-++++++  GET api/v1/^programs/(?P<pk>[^/.]+)/integrations-summary/$::integrations_summary
-++++++  GET api/v1/^programs/(?P<pk>[^/.]+)/mention-reach/$::mention_reach
-++++++  GET api/v1/^programs/(?P<pk>[^/.]+)/projects/$::projects
-++++++  GET api/v1/^programs/(?P<pk>[^/.]+)/resource-contention/$::resource_contention
-++++++  GET api/v1/^programs/(?P<pk>[^/.]+)/risk-policy/$::risk_policy
-++++++  GET api/v1/^programs/(?P<pk>[^/.]+)/rollup-config/$::rollup_config
-++++++  GET api/v1/^programs/(?P<pk>[^/.]+)/rollup/$::rollup
-++++++  GET api/v1/^programs/(?P<pk>[^/.]+)/schedule/$::schedule
-++++++  GET api/v1/^programs/(?P<pk>[^/.]+)/task-search/$::task_search
--+++++  GET api/v1/^programs/(?P<program_pk>[^/.]+)/webhooks/$::list
--+++++  GET api/v1/^programs/(?P<program_pk>[^/.]+)/webhooks/(?P<pk>[^/.]+)/$::retrieve
-----++  GET api/v1/^programs/(?P<program_pk>[^/.]+)/webhooks/(?P<pk>[^/.]+)/deliveries/$::deliveries
-++++++  GET api/v1/^programs/samples/$::samples
-++++++  GET api/v1/^programs/samples/(?P<key>[^/.]+)/download/$::download_sample
-++++++  GET api/v1/^project-resources/$::list
-++++++  GET api/v1/^project-resources/(?P<pk>[^/.]+)/$::retrieve
-++++++  GET api/v1/^project-templates/$::list
-++++++  GET api/v1/^project-templates/(?P<pk>[^/.]+)/$::retrieve
-++++++  GET api/v1/^project-templates/publish-preview/$::publish_preview
-++++++  GET api/v1/^projects/$::list
-++++++  GET api/v1/^projects/(?P<pk>[^/.]+)/$::retrieve
-++++++  GET api/v1/^projects/(?P<pk>[^/.]+)/blocked/$::blocked
-++++++  GET api/v1/^projects/(?P<pk>[^/.]+)/calendars/$::working_calendars
-++++++  GET api/v1/^projects/(?P<pk>[^/.]+)/calendars/preview/$::working_calendars_preview
-++++++  GET api/v1/^projects/(?P<pk>[^/.]+)/decisions/$::decisions
-++++++  GET api/v1/^projects/(?P<pk>[^/.]+)/export/$::export
-++++++  GET api/v1/^projects/(?P<pk>[^/.]+)/export/jobs/$::export_jobs
-++++++  GET api/v1/^projects/(?P<pk>[^/.]+)/export/jobs/(?P<job_id>[0-9a-f-]{36})/$::export_job_detail
-++++++  GET api/v1/^projects/(?P<pk>[^/.]+)/export/jobs/(?P<job_id>[0-9a-f-]{36})/download/$::export_job_download
-++++++  GET api/v1/^projects/(?P<pk>[^/.]+)/integrations-summary/$::integrations_summary
-++++++  GET api/v1/^projects/(?P<pk>[^/.]+)/product-backlog/$::product_backlog
-++++++  GET api/v1/^projects/(?P<pk>[^/.]+)/resource-allocation/$::resource_allocation
-++++++  GET api/v1/^projects/(?P<pk>[^/.]+)/resources/heatmap/$::heatmap
-++++++  GET api/v1/^projects/(?P<pk>[^/.]+)/resources/summary/$::resources_summary
-++++++  GET api/v1/^projects/(?P<pk>[^/.]+)/retrospective/carryover/$::retro_carryover
-++++++  GET api/v1/^projects/(?P<pk>[^/.]+)/status-summary/$::status_summary
-++++++  GET api/v1/^projects/(?P<pk>[^/.]+)/template-divergence/$::template_divergence
-++++++  GET api/v1/^projects/(?P<pk>[^/.]+)/utilization/$::utilization
--+++++  GET api/v1/^projects/(?P<project_pk>[^/.]+)/webhooks/$::list
--+++++  GET api/v1/^projects/(?P<project_pk>[^/.]+)/webhooks/(?P<pk>[^/.]+)/$::retrieve
-----++  GET api/v1/^projects/(?P<project_pk>[^/.]+)/webhooks/(?P<pk>[^/.]+)/deliveries/$::deliveries
-++++++  GET api/v1/^projects/health-summary/$::health_summary
-++++++  GET api/v1/^projects/trash/$::trash
-++++++  GET api/v1/^recurrence-rules/$::list
-++++++  GET api/v1/^recurrence-rules/(?P<pk>[^/.]+)/$::retrieve
-++++++  GET api/v1/^resource-skills/$::list
-++++++  GET api/v1/^resource-skills/(?P<pk>[^/.]+)/$::retrieve
-++++++  GET api/v1/^resources/$::list
-++++++  GET api/v1/^resources/(?P<pk>[^/.]+)/$::retrieve
-------  GET api/v1/^resources/(?P<pk>[^/.]+)/assignments/$::assignments
-++++++  GET api/v1/^skills/$::list
-++++++  GET api/v1/^skills/(?P<pk>[^/.]+)/$::retrieve
-++++++  GET api/v1/^slip-conflicts/$::list
-++++++  GET api/v1/^slip-conflicts/(?P<pk>[^/.]+)/$::retrieve
-++++++  GET api/v1/^structural-operations/$::list
-++++++  GET api/v1/^structural-operations/(?P<pk>[^/.]+)/$::retrieve
-++++++  GET api/v1/^task-relations/$::list
-++++++  GET api/v1/^task-relations/(?P<pk>[^/.]+)/$::retrieve
-++++++  GET api/v1/^task-resources/$::list
-++++++  GET api/v1/^task-resources/(?P<pk>[^/.]+)/$::retrieve
-++++++  GET api/v1/^task-runs/$::list
-++++++  GET api/v1/^task-runs/(?P<pk>[^/.]+)/$::retrieve
-++++++  GET api/v1/^task-runs/active/$::active
-++++++  GET api/v1/^task-skill-requirements/$::list
-++++++  GET api/v1/^task-skill-requirements/(?P<pk>[^/.]+)/$::retrieve
-++++++  GET api/v1/^tasks/$::list
-++++++  GET api/v1/^tasks/(?P<pk>[^/.]+)/$::retrieve
-++++++  GET api/v1/^tasks/(?P<pk>[^/.]+)/duration-events/$::duration_events
-++++++  GET api/v1/^tasks/search/$::search
-++++++  GET api/v1/^tasks/trash/$::trash
-++++++  GET api/v1/^template-applications/$::list
-++++++  GET api/v1/^template-applications/(?P<pk>[^/.]+)/$::retrieve
-++++++  GET api/v1/^velocity-suggestions/$::list
-++++++  GET api/v1/^velocity-suggestions/(?P<pk>[^/.]+)/$::retrieve
-++++++  GET api/v1/agent-actions/::list
-++++++  GET api/v1/agent-actions/<uuid:pk>/::retrieve
-++++++  GET api/v1/assets/::get
-++++++  GET api/v1/auth/me/::get
-++++++  GET api/v1/auth/me/pinned/::get
-++++++  GET api/v1/auth/me/profile/::get
+++++++  GET api/v1/auth/oidc/callback/::get
+++++++  GET api/v1/auth/oidc/discover/::get
+++++++  GET api/v1/auth/oidc/login/::get
-++++++  GET api/v1/calendars/<calendar_pk>/exceptions/::list
-++++++  GET api/v1/calendars/<calendar_pk>/exceptions/<pk>/::retrieve
+++++++  GET api/v1/edition/::get
+++++++  GET api/v1/health/::get
-------  GET api/v1/health/beat/::get
-------  GET api/v1/health/dead-letter/::get
-------  GET api/v1/health/email/::get
-------  GET api/v1/health/retention/::get
-------  GET api/v1/health/retention/impact/::get
-------  GET api/v1/health/system/::get
-++++++  GET api/v1/import-templates/csv/::get
-----++  GET api/v1/integrations/projects/<uuid:project_pk>/git-automation/::get
-++++++  GET api/v1/me/active-sprints/::get
-++++++  GET api/v1/me/api-token-audit/::get
-++++++  GET api/v1/me/api-tokens/::list
-++++++  GET api/v1/me/api-tokens/<pk>/::retrieve
-++++++  GET api/v1/me/connections/<slug:source>/::get
-++++++  GET api/v1/me/credentials/::list
-++++++  GET api/v1/me/credentials/<slug:provider>/::retrieve
-++++++  GET api/v1/me/external-items/::get
-++++++  GET api/v1/me/notification-preferences/::list
-++++++  GET api/v1/me/notification-settings/::get
-++++++  GET api/v1/me/notifications/::list
-++++++  GET api/v1/me/notifications/<uuid:pk>/::retrieve
-++++++  GET api/v1/me/recent-projects/::get
-++++++  GET api/v1/me/search/::get
-++++++  GET api/v1/me/time-entries/::get
-++++++  GET api/v1/me/timer/::get
-++++++  GET api/v1/me/work/::get
--+++++  GET api/v1/programs/<program_pk>/api-token-audit/::get
--+++++  GET api/v1/programs/<program_pk>/api-tokens/::list
--+++++  GET api/v1/programs/<program_pk>/api-tokens/<pk>/::retrieve
--+++++  GET api/v1/programs/<program_pk>/assets/::get
--+++++  GET api/v1/programs/<program_pk>/backlog-items/::list
--+++++  GET api/v1/programs/<program_pk>/backlog-items/<pk>/::retrieve
--+++++  GET api/v1/programs/<program_pk>/ceremonies/::list
--+++++  GET api/v1/programs/<program_pk>/ceremonies/<pk>/::retrieve
--+++++  GET api/v1/programs/<program_pk>/label-catalog/::get
--+++++  GET api/v1/programs/<program_pk>/label-tasks/::list
--+++++  GET api/v1/programs/<program_pk>/phase-gate-config/::get
-----++  GET api/v1/programs/<uuid:program_pk>/external-stakeholders/::list
-----++  GET api/v1/programs/<uuid:program_pk>/external-stakeholders/<uuid:pk>/::retrieve
--+++++  GET api/v1/programs/<uuid:program_pk>/members/::list
--+++++  GET api/v1/programs/<uuid:program_pk>/members/<uuid:pk>/::retrieve
--+++++  GET api/v1/programs/<uuid:program_pk>/mention-groups/::list
--+++++  GET api/v1/programs/<uuid:program_pk>/mention-groups/<uuid:pk>/::retrieve
--+++++  GET api/v1/projects/<pk>/attention/::get
-++++++  GET api/v1/projects/<pk>/board-config/::get
--+++++  GET api/v1/projects/<pk>/board-views/::get
--+++++  GET api/v1/projects/<pk>/burn/::get
--+++++  GET api/v1/projects/<pk>/flow-metrics/::get
--+++++  GET api/v1/projects/<pk>/forecast/::get
--+++++  GET api/v1/projects/<pk>/milestones/::get
--+++++  GET api/v1/projects/<pk>/my-tasks/::get
--+++++  GET api/v1/projects/<pk>/overview/::get
--+++++  GET api/v1/projects/<pk>/presence/::get
-++++++  GET api/v1/projects/<pk>/retrospective/carryover/::retro_carryover
--+++++  GET api/v1/projects/<pk>/sprint-forecast/::get
--+++++  GET api/v1/projects/<pk>/sprint-health/::get
--+++++  GET api/v1/projects/<pk>/velocity/::get
--+++++  GET api/v1/projects/<project_pk>/api-token-audit/::get
--+++++  GET api/v1/projects/<project_pk>/api-tokens/::list
--+++++  GET api/v1/projects/<project_pk>/api-tokens/<pk>/::retrieve
--+++++  GET api/v1/projects/<project_pk>/assets/::get
--+++++  GET api/v1/projects/<project_pk>/baselines/::list
--+++++  GET api/v1/projects/<project_pk>/baselines/<pk>/::retrieve
--+++++  GET api/v1/projects/<project_pk>/board/activity/::get
--+++++  GET api/v1/projects/<project_pk>/changelog/::get
--+++++  GET api/v1/projects/<project_pk>/decisions-policy/::get
--+++++  GET api/v1/projects/<project_pk>/export/msproject.xml::get
--+++++  GET api/v1/projects/<project_pk>/fields/::list
--+++++  GET api/v1/projects/<project_pk>/fields/<pk>/::retrieve
--+++++  GET api/v1/projects/<project_pk>/guardrail-policy/::get
--+++++  GET api/v1/projects/<project_pk>/history/::get
----+++  GET api/v1/projects/<project_pk>/import/csv/<pk>/::get
--+++++  GET api/v1/projects/<project_pk>/imports/::get
--+++++  GET api/v1/projects/<project_pk>/labels/::list
--+++++  GET api/v1/projects/<project_pk>/labels/<pk>/::retrieve
--+++++  GET api/v1/projects/<project_pk>/phases/::list
--+++++  GET api/v1/projects/<project_pk>/phases/<pk>/::retrieve
--+++++  GET api/v1/projects/<project_pk>/risks/::list
--+++++  GET api/v1/projects/<project_pk>/risks/<pk>/::retrieve
--+++++  GET api/v1/projects/<project_pk>/risks/<risk_pk>/comments/::list
--+++++  GET api/v1/projects/<project_pk>/scheduler-runs/::list
--+++++  GET api/v1/projects/<project_pk>/scheduler-runs/<pk>/::retrieve
-----++  GET api/v1/projects/<project_pk>/share-links/::get
--+++++  GET api/v1/projects/<project_pk>/signal-privacy/::get
--+++++  GET api/v1/projects/<project_pk>/signal-privacy/ceiling-proposals/::get
--+++++  GET api/v1/projects/<project_pk>/sprints/::list
--+++++  GET api/v1/projects/<project_pk>/standup/::get
--+++++  GET api/v1/projects/<project_pk>/task-runs/::list
--+++++  GET api/v1/projects/<project_pk>/task-runs/<pk>/::retrieve
--+++++  GET api/v1/projects/<project_pk>/tasks/<task_pk>/attachments/::list
--+++++  GET api/v1/projects/<project_pk>/tasks/<task_pk>/attachments/<pk>/::retrieve
--+++++  GET api/v1/projects/<project_pk>/tasks/<task_pk>/attachments/<pk>/signed-url/::signed_url
--+++++  GET api/v1/projects/<project_pk>/tasks/<task_pk>/baseline/::get
--+++++  GET api/v1/projects/<project_pk>/tasks/<task_pk>/comments/::list
--+++++  GET api/v1/projects/<project_pk>/tasks/<task_pk>/comments/<pk>/::retrieve
--+++++  GET api/v1/projects/<project_pk>/tasks/<task_pk>/history/::get
--+++++  GET api/v1/projects/<project_pk>/tasks/<task_pk>/links/::list
--+++++  GET api/v1/projects/<project_pk>/tasks/<task_pk>/links/<pk>/::retrieve
--+++++  GET api/v1/projects/<project_pk>/tasks/<task_pk>/notes/::list
--+++++  GET api/v1/projects/<project_pk>/tasks/<task_pk>/notes/<pk>/::retrieve
--+++++  GET api/v1/projects/<str:pk>/forecast-snapshots/::get
--+++++  GET api/v1/projects/<str:pk>/monte-carlo/history/::get
--+++++  GET api/v1/projects/<str:pk>/monte-carlo/latest/::get
--+++++  GET api/v1/projects/<str:pk>/monte-carlo/whatif/::get
--+++++  GET api/v1/projects/<str:pk>/schedule/derivation/::get
--+++++  GET api/v1/projects/<uuid:pk>/notification-preferences/::get
-++++++  GET api/v1/projects/<uuid:pk>/sync/::get
--+++++  GET api/v1/projects/<uuid:project_pk>/members/::list
--+++++  GET api/v1/projects/<uuid:project_pk>/members/<uuid:pk>/::retrieve
--+++++  GET api/v1/projects/<uuid:project_pk>/mention-groups/::list
--+++++  GET api/v1/projects/<uuid:project_pk>/mention-groups/<uuid:pk>/::retrieve
--+++++  GET api/v1/projects/<uuid:project_pk>/teams/::list
+++++++  GET api/v1/readyz::get
+++++++  GET api/v1/share/board/<token>/::get
+++++++  GET api/v1/share/schedule/<token>/::get
-++++++  GET api/v1/sprints/<pk>/::retrieve
-++++++  GET api/v1/sprints/<pk>/blocked/::blocked
-++++++  GET api/v1/sprints/<pk>/burndown/::burndown
-++++++  GET api/v1/sprints/<pk>/capacity/::capacity
-++++++  GET api/v1/sprints/<pk>/close-request/::close_request
-++++++  GET api/v1/sprints/<pk>/daily-delta/::daily_delta
-++++++  GET api/v1/sprints/<pk>/duration-events/::duration_events
-++++++  GET api/v1/sprints/<pk>/incoming_carryover/::incoming_carryover
-++++++  GET api/v1/sprints/<pk>/outcome/::outcome
-++++++  GET api/v1/sprints/<pk>/pulse-trend/::pulse_trend
-++++++  GET api/v1/sprints/<pk>/pulse/::pulse
-++++++  GET api/v1/sprints/<pk>/reforecast-preview/::reforecast_preview
-++++++  GET api/v1/sprints/<pk>/retro-board/::retro_board
-++++++  GET api/v1/sprints/<pk>/retro/::retro
-++++++  GET api/v1/sprints/<pk>/retrospective/prior/::retro_prior
-++++++  GET api/v1/sprints/<pk>/scope-changes/::scope_changes
-++++++  GET api/v1/sprints/<sprint_pk>/poker/::get
-++++++  GET api/v1/sync/user/programs/::get
-++++++  GET api/v1/tasks/<uuid:task_pk>/time-entries/::get
-------  GET api/v1/teams/<uuid:team_pk>/members/::list
-++++++  GET api/v1/users/search/::get
-++++++  GET api/v1/workspace/::get
-------  GET api/v1/workspace/audit-events/::get
-------  GET api/v1/workspace/email-settings/::get
-------  GET api/v1/workspace/email-settings/health/::get
-------  GET api/v1/workspace/export/::get
-------  GET api/v1/workspace/export/<uuid:job_id>/::get
-------  GET api/v1/workspace/export/<uuid:job_id>/download/::get
-------  GET api/v1/workspace/groups/::get
-------  GET api/v1/workspace/groups/<uuid:group_id>/::get
-------  GET api/v1/workspace/invites/::get
+++++++  GET api/v1/workspace/logo/::get
-++++++  GET api/v1/workspace/members/::get
-------  GET api/v1/workspace/sso/providers/::get
-------  GET api/v1/workspace/sso/providers/<slug:slug>/::get
-------  GET api/v1/workspace/sso/redirect-uri/::get
-++++++  PATCH api/v1/^acceptance-criteria/(?P<pk>[^/.]+)/$::partial_update
-----++  PATCH api/v1/^calendars/(?P<pk>[^/.]+)/$::partial_update
-++++++  PATCH api/v1/^dependencies/(?P<pk>[^/.]+)/$::partial_update
-++++++  PATCH api/v1/^programs/(?P<pk>[^/.]+)/$::partial_update
-++++++  PATCH api/v1/^programs/(?P<pk>[^/.]+)/risk-policy/$::risk_policy
-++++++  PATCH api/v1/^programs/(?P<pk>[^/.]+)/rollup-config/$::rollup_config
-----++  PATCH api/v1/^programs/(?P<program_pk>[^/.]+)/webhooks/(?P<pk>[^/.]+)/$::partial_update
-++++++  PATCH api/v1/^project-resources/(?P<pk>[^/.]+)/$::partial_update
-++++++  PATCH api/v1/^projects/(?P<pk>[^/.]+)/$::partial_update
-----++  PATCH api/v1/^projects/(?P<project_pk>[^/.]+)/webhooks/(?P<pk>[^/.]+)/$::partial_update
-++++++  PATCH api/v1/^recurrence-rules/(?P<pk>[^/.]+)/$::partial_update
----+++  PATCH api/v1/^resource-skills/(?P<pk>[^/.]+)/$::partial_update
-----++  PATCH api/v1/^resources/(?P<pk>[^/.]+)/$::partial_update
----+++  PATCH api/v1/^skills/(?P<pk>[^/.]+)/$::partial_update
-++++++  PATCH api/v1/^task-relations/(?P<pk>[^/.]+)/$::partial_update
-++++++  PATCH api/v1/^task-resources/(?P<pk>[^/.]+)/$::partial_update
-++++++  PATCH api/v1/^task-skill-requirements/(?P<pk>[^/.]+)/$::partial_update
-++++++  PATCH api/v1/^tasks/(?P<pk>[^/.]+)/$::partial_update
-++++++  PATCH api/v1/auth/me/profile/::patch
-----++  PATCH api/v1/calendars/<calendar_pk>/exceptions/<pk>/::partial_update
-------  PATCH api/v1/health/retention/::patch
-++++++  PATCH api/v1/me/connections/<slug:source>/::patch
-++++++  PATCH api/v1/me/notification-preferences/<int:pk>/::partial_update
-++++++  PATCH api/v1/me/notification-settings/::patch
-++++++  PATCH api/v1/me/notifications/<uuid:pk>/::partial_update
-++++++  PATCH api/v1/me/time-entries/<uuid:pk>/::patch
---++++  PATCH api/v1/programs/<program_pk>/backlog-items/<pk>/::partial_update
-----++  PATCH api/v1/programs/<program_pk>/ceremonies/<pk>/::partial_update
-----++  PATCH api/v1/programs/<program_pk>/phase-gate-config/::patch
-----++  PATCH api/v1/programs/<uuid:program_pk>/external-stakeholders/<uuid:pk>/::partial_update
-----++  PATCH api/v1/programs/<uuid:program_pk>/members/<uuid:pk>/::partial_update
------+  PATCH api/v1/programs/<uuid:program_pk>/mention-groups/<uuid:pk>/::partial_update
--+++++  PATCH api/v1/projects/<pk>/board-views/<view_pk>/::patch
-----++  PATCH api/v1/projects/<pk>/phases/reorder/::patch
---+-++  PATCH api/v1/projects/<pk>/tasks/classification/::patch
--+++++  PATCH api/v1/projects/<project_pk>/decisions-policy/::patch
----+++  PATCH api/v1/projects/<project_pk>/fields/<pk>/::partial_update
---++++  PATCH api/v1/projects/<project_pk>/guardrail-policy/::patch
-----++  PATCH api/v1/projects/<project_pk>/labels/<pk>/::partial_update
-----++  PATCH api/v1/projects/<project_pk>/phases/<pk>/::partial_update
---++++  PATCH api/v1/projects/<project_pk>/risks/<pk>/::partial_update
--+++++  PATCH api/v1/projects/<project_pk>/signal-privacy/::patch
---++++  PATCH api/v1/projects/<project_pk>/tasks/<task_pk>/comments/<pk>/::partial_update
---++++  PATCH api/v1/projects/<project_pk>/tasks/<task_pk>/links/<pk>/::partial_update
---++++  PATCH api/v1/projects/<project_pk>/tasks/<task_pk>/notes/<pk>/::partial_update
--+++++  PATCH api/v1/projects/<uuid:pk>/notification-preferences/::patch
------+  PATCH api/v1/projects/<uuid:project_pk>/members/<uuid:pk>/::partial_update
--+++++  PATCH api/v1/projects/<uuid:project_pk>/mention-groups/<uuid:pk>/::partial_update
-++++++  PATCH api/v1/retro-items/<pk>/::partial_update
-++++++  PATCH api/v1/sprints/<pk>/::partial_update
-++++++  PATCH api/v1/sprints/<pk>/retro/::retro
-------  PATCH api/v1/teams/<uuid:team_pk>/members/<uuid:pk>/::partial_update
-------  PATCH api/v1/workspace/::patch
-------  PATCH api/v1/workspace/email-settings/::patch
-------  PATCH api/v1/workspace/groups/<uuid:group_id>/::patch
-------  PATCH api/v1/workspace/members/<int:user_id>/::patch
-++++++  POST api/v1/^acceptance-criteria/$::create
-------  POST api/v1/^admin/failed-tasks/(?P<pk>[^/.]+)/drop/$::drop
-------  POST api/v1/^admin/failed-tasks/(?P<pk>[^/.]+)/requeue/$::requeue
-------  POST api/v1/^admin/failed-tasks/drop-all/$::drop_all
-------  POST api/v1/^admin/failed-tasks/requeue-all/$::requeue_all
-----++  POST api/v1/^calendars/$::create
-++++++  POST api/v1/^cascade-classification-operations/(?P<pk>[^/.]+)/undo/$::undo
-++++++  POST api/v1/^dependencies/$::create
-++++++  POST api/v1/^dependencies/(?P<pk>[^/.]+)/accept/$::accept
-++++++  POST api/v1/^dependencies/(?P<pk>[^/.]+)/reject/$::reject
-++++++  POST api/v1/^paste-many-operations/(?P<pk>[^/.]+)/undo/$::undo
-++++++  POST api/v1/^programs/$::create
-++++++  POST api/v1/^programs/(?P<pk>[^/.]+)/bulk-project-fields/$::bulk_project_fields
-++++++  POST api/v1/^programs/(?P<pk>[^/.]+)/close/$::close
-++++++  POST api/v1/^programs/(?P<pk>[^/.]+)/export/$::export
-++++++  POST api/v1/^programs/(?P<pk>[^/.]+)/pin/$::pin
-++++++  POST api/v1/^programs/(?P<pk>[^/.]+)/remove-sample/$::remove_sample
-++++++  POST api/v1/^programs/(?P<pk>[^/.]+)/reopen/$::reopen
-++++++  POST api/v1/^programs/(?P<pk>[^/.]+)/shift-sample-dates/$::shift_sample_dates
-++++++  POST api/v1/^programs/(?P<pk>[^/.]+)/split/$::split
-++++++  POST api/v1/^programs/(?P<pk>[^/.]+)/transfer-sponsorship/$::transfer_sponsorship
-----++  POST api/v1/^programs/(?P<program_pk>[^/.]+)/webhooks/$::create
-----++  POST api/v1/^programs/(?P<program_pk>[^/.]+)/webhooks/(?P<pk>[^/.]+)/test/$::test_ping
-------  POST api/v1/^programs/bulk-fields/$::bulk_fields
-++++++  POST api/v1/^programs/import/$::import_seed
-++++++  POST api/v1/^programs/import/validate/$::validate_import
-++++++  POST api/v1/^programs/load-sample/$::load_sample
-++++++  POST api/v1/^project-resources/$::create
-++++++  POST api/v1/^project-templates/(?P<pk>[^/.]+)/apply/$::apply
-++++++  POST api/v1/^project-templates/publish/$::publish
-++++++  POST api/v1/^projects/$::create
-++++++  POST api/v1/^projects/(?P<pk>[^/.]+)/archive/$::archive
-++++++  POST api/v1/^projects/(?P<pk>[^/.]+)/export/$::export
-++++++  POST api/v1/^projects/(?P<pk>[^/.]+)/pin/$::pin
-++++++  POST api/v1/^projects/(?P<pk>[^/.]+)/product-backlog/auto-rank/$::product_backlog_auto_rank
-++++++  POST api/v1/^projects/(?P<pk>[^/.]+)/product-backlog/reorder/$::product_backlog_reorder
-++++++  POST api/v1/^projects/(?P<pk>[^/.]+)/queue/reorder/$::queue_reorder
-++++++  POST api/v1/^projects/(?P<pk>[^/.]+)/restore/$::restore
-++++++  POST api/v1/^projects/(?P<pk>[^/.]+)/transfer/$::transfer
-++++++  POST api/v1/^projects/(?P<pk>[^/.]+)/unarchive/$::unarchive
-++++++  POST api/v1/^projects/(?P<pk>[^/.]+)/visit/$::visit
-----++  POST api/v1/^projects/(?P<project_pk>[^/.]+)/webhooks/$::create
-----++  POST api/v1/^projects/(?P<project_pk>[^/.]+)/webhooks/(?P<pk>[^/.]+)/test/$::test_ping
-++++++  POST api/v1/^recurrence-rules/$::create
----+++  POST api/v1/^resource-skills/$::create
-----++  POST api/v1/^resources/$::create
-------  POST api/v1/^resources/(?P<pk>[^/.]+)/restore/$::restore
----+++  POST api/v1/^skills/$::create
-++++++  POST api/v1/^slip-conflicts/(?P<pk>[^/.]+)/acknowledge/$::acknowledge
-++++++  POST api/v1/^structural-operations/(?P<pk>[^/.]+)/undo/$::undo
-++++++  POST api/v1/^task-relations/$::create
-++++++  POST api/v1/^task-resources/$::create
-++++++  POST api/v1/^task-skill-requirements/$::create
-++++++  POST api/v1/^tasks/$::create
-++++++  POST api/v1/^tasks/(?P<pk>[^/.]+)/approve-estimates/$::approve_estimates
-++++++  POST api/v1/^tasks/(?P<pk>[^/.]+)/reorder/$::reorder
-++++++  POST api/v1/^tasks/(?P<pk>[^/.]+)/restore/$::restore
-++++++  POST api/v1/^tasks/(?P<pk>[^/.]+)/split/$::split
-++++++  POST api/v1/^tasks/delete-untouched-seeded/$::delete_untouched_seeded
-++++++  POST api/v1/^template-applications/(?P<pk>[^/.]+)/undo/$::undo
-++++++  POST api/v1/^velocity-suggestions/(?P<pk>[^/.]+)/accept/$::accept
-++++++  POST api/v1/^velocity-suggestions/(?P<pk>[^/.]+)/dismiss/$::dismiss
+++++++  POST api/v1/auth/logout/::post
+++++++  POST api/v1/auth/password/reset/::post
+++++++  POST api/v1/auth/password/reset/confirm/::post
+++++++  POST api/v1/auth/token/::post
+++++++  POST api/v1/auth/token/refresh/::post
-----++  POST api/v1/calendars/<calendar_pk>/exceptions/::create
-------  POST api/v1/health/retention/runs/::post
-------  POST api/v1/health/telemetry/test/::post
-----++  POST api/v1/integrations/projects/<uuid:project_pk>/git-automation/rotate-secret/::post
+++++++  POST api/v1/integrations/projects/<uuid:project_pk>/git-webhook/::post
-++++++  POST api/v1/me/api-tokens/::create
-++++++  POST api/v1/me/connections/<slug:source>/sync/::post
-++++++  POST api/v1/me/credentials/<slug:provider>/::create
-++++++  POST api/v1/me/notification-preferences/apply-preset/::apply_preset
-++++++  POST api/v1/me/notifications/<uuid:pk>/snooze/::snooze
-++++++  POST api/v1/me/notifications/mark-all-read/::mark_all_read
-++++++  POST api/v1/me/timer/start::post
-++++++  POST api/v1/me/timer/stop::post
-++++++  POST api/v1/me/timesheets/<str:week_start>/submit::post
-++++++  POST api/v1/poker/<pk>/cancel/::post
-++++++  POST api/v1/poker/<pk>/commit/::post
-++++++  POST api/v1/poker/<pk>/reopen/::post
-++++++  POST api/v1/poker/<pk>/reveal/::post
-++++++  POST api/v1/poker/<pk>/vote/::post
-----++  POST api/v1/programs/<program_pk>/api-tokens/::create
---++++  POST api/v1/programs/<program_pk>/backlog-items/::create
---++++  POST api/v1/programs/<program_pk>/backlog-items/<pk>/pull/::pull
-----++  POST api/v1/programs/<program_pk>/ceremonies/::create
-----++  POST api/v1/programs/<uuid:program_pk>/external-stakeholders/::create
------+  POST api/v1/programs/<uuid:program_pk>/members/::create
------+  POST api/v1/programs/<uuid:program_pk>/mention-groups/::create
--+++++  POST api/v1/programs/<uuid:program_pk>/mention-groups/<uuid:pk>/add-member/::add_member
--+++++  POST api/v1/programs/<uuid:program_pk>/mention-groups/<uuid:pk>/mute/::mute
--+++++  POST api/v1/programs/<uuid:program_pk>/mention-groups/<uuid:pk>/remove-member/::remove_member
--+++++  POST api/v1/programs/<uuid:program_pk>/mention-groups/<uuid:pk>/unmute/::unmute
-------  POST api/v1/projects/<pk>/acceptance-results/::post
---++++  POST api/v1/projects/<pk>/board-views/::post
-++++++  POST api/v1/projects/<pk>/commit/::post
-------  POST api/v1/projects/<pk>/task-sync/::post
---++++  POST api/v1/projects/<pk>/tasks/<task_id>/indent/::post
---++++  POST api/v1/projects/<pk>/tasks/<task_id>/outdent/::post
---++++  POST api/v1/projects/<pk>/tasks/<task_id>/reparent/::post
---+-++  POST api/v1/projects/<pk>/tasks/bulk/::post
---+-++  POST api/v1/projects/<pk>/tasks/group/::post
---++++  POST api/v1/projects/<pk>/tasks/reorder/::post
---+-++  POST api/v1/projects/<pk>/tasks/ungroup/::post
-----++  POST api/v1/projects/<project_pk>/api-tokens/::create
-----++  POST api/v1/projects/<project_pk>/baselines/::create
-----++  POST api/v1/projects/<project_pk>/baselines/<baseline_pk>/activate/::post
----+++  POST api/v1/projects/<project_pk>/fields/::create
----+++  POST api/v1/projects/<project_pk>/import/csv/::post
----+++  POST api/v1/projects/<project_pk>/import/csv/<pk>/undo/::post
----+++  POST api/v1/projects/<project_pk>/import/csv/preview/::post
-----++  POST api/v1/projects/<project_pk>/import/jira/::post
-----++  POST api/v1/projects/<project_pk>/import/msproject/::post
---++++  POST api/v1/projects/<project_pk>/labels/::create
-----++  POST api/v1/projects/<project_pk>/phases/::create
---++++  POST api/v1/projects/<project_pk>/risks/::create
---++++  POST api/v1/projects/<project_pk>/risks/<risk_pk>/comments/::create
---++++  POST api/v1/projects/<project_pk>/risks/import/::import_csv
-----++  POST api/v1/projects/<project_pk>/share-links/::post
-----++  POST api/v1/projects/<project_pk>/share-links/<link_id>/revoke/::post
--+++++  POST api/v1/projects/<project_pk>/signal-privacy/ceiling-proposals/<proposal_pk>/vote/::post
--+++++  POST api/v1/projects/<project_pk>/signal-privacy/ceiling-proposals/<proposal_pk>/withdraw/::post
--+++++  POST api/v1/projects/<project_pk>/signal-privacy/raise-ceiling/::post
--+++++  POST api/v1/projects/<project_pk>/signal-privacy/ratchet-down/::post
---++++  POST api/v1/projects/<project_pk>/sprints/::create
---++++  POST api/v1/projects/<project_pk>/sprints/generate/::generate
-----++  POST api/v1/projects/<project_pk>/task-runs/<pk>/cancel/::cancel
---++++  POST api/v1/projects/<project_pk>/tasks/<task_pk>/attachments/::create
---++++  POST api/v1/projects/<project_pk>/tasks/<task_pk>/comments/::create
---++++  POST api/v1/projects/<project_pk>/tasks/<task_pk>/comments/<comment_pk>/reactions/::create
---++++  POST api/v1/projects/<project_pk>/tasks/<task_pk>/comments/<pk>/acknowledge/::acknowledge
-++++++  POST api/v1/projects/<project_pk>/tasks/<task_pk>/labels/::post
-++++++  POST api/v1/projects/<project_pk>/tasks/<task_pk>/labels/<label_id>/::post
---++++  POST api/v1/projects/<project_pk>/tasks/<task_pk>/links/::create
--+++++  POST api/v1/projects/<project_pk>/tasks/<task_pk>/links/<pk>/refresh/::refresh
---++++  POST api/v1/projects/<project_pk>/tasks/<task_pk>/notes/::create
---++++  POST api/v1/projects/<project_pk>/tasks/<task_pk>/notes/<pk>/decision/::decision
---++++  POST api/v1/projects/<project_pk>/tasks/<task_pk>/notes/<pk>/pin/::pin
-++++++  POST api/v1/projects/<str:pk>/monte-carlo/::post
-++++++  POST api/v1/projects/<str:pk>/schedule/::post
-++++++  POST api/v1/projects/<uuid:pk>/sync/::post
------+  POST api/v1/projects/<uuid:project_pk>/members/::create
--+++++  POST api/v1/projects/<uuid:project_pk>/mention-groups/::create
--+++++  POST api/v1/projects/<uuid:project_pk>/mention-groups/<uuid:pk>/add-member/::add_member
--+++++  POST api/v1/projects/<uuid:project_pk>/mention-groups/<uuid:pk>/mute/::mute
--+++++  POST api/v1/projects/<uuid:project_pk>/mention-groups/<uuid:pk>/remove-member/::remove_member
--+++++  POST api/v1/projects/<uuid:project_pk>/mention-groups/<uuid:pk>/unmute/::unmute
-++++++  POST api/v1/projects/import/msproject/::post
-++++++  POST api/v1/retro-items/<pk>/convert-to-action/::convert_to_action
-++++++  POST api/v1/scope-changes/<pk>/accept/::accept
-++++++  POST api/v1/scope-changes/<pk>/reject/::reject
-++++++  POST api/v1/sprint-task-outcomes/<pk>/flag-for-backlog/::flag_for_backlog
-++++++  POST api/v1/sprint-task-outcomes/<pk>/set-note/::set_note
-++++++  POST api/v1/sprint-task-outcomes/<pk>/set-presenter/::set_presenter
-++++++  POST api/v1/sprint-task-outcomes/<pk>/toggle-demo/::toggle_demo
-++++++  POST api/v1/sprints/<pk>/activate/::activate
-++++++  POST api/v1/sprints/<pk>/cancel/::cancel
-++++++  POST api/v1/sprints/<pk>/close/::close
-++++++  POST api/v1/sprints/<pk>/demo-list/reorder/::demo_list_reorder
-++++++  POST api/v1/sprints/<pk>/promote-to-milestone/::promote_to_milestone
-++++++  POST api/v1/sprints/<pk>/reorder/::reorder
-++++++  POST api/v1/sprints/<pk>/retro-board/::retro_board
-++++++  POST api/v1/sprints/<pk>/retro/::retro
-++++++  POST api/v1/sprints/<pk>/retrospective/action-items/<uuid:item_pk>/promote/::promote_action_item
-++++++  POST api/v1/sprints/<pk>/retrospective/action-items/<uuid:item_pk>/pull-to-sprint/::pull_action_item_to_sprint
-++++++  POST api/v1/sprints/<pk>/scope-changes/accept/::scope_changes_accept
-++++++  POST api/v1/sprints/<pk>/scope-changes/reject/::scope_changes_reject
-++++++  POST api/v1/sprints/<pk>/unbind-milestone/::unbind_milestone
-++++++  POST api/v1/sprints/<sprint_pk>/poker/::post
-++++++  POST api/v1/tasks/<pk>/suggestions/<uuid:suggestion_pk>/accept/::accept_suggestion
-++++++  POST api/v1/tasks/<pk>/suggestions/<uuid:suggestion_pk>/decline/::decline_suggestion
-++++++  POST api/v1/tasks/<pk>/suggestions/<uuid:suggestion_pk>/revoke/::revoke_suggestion
-++++++  POST api/v1/tasks/<uuid:task_pk>/time-entries/::post
-------  POST api/v1/workspace/email-settings/send-test/::post
-------  POST api/v1/workspace/export/::post
-------  POST api/v1/workspace/groups/::post
-------  POST api/v1/workspace/groups/<uuid:group_id>/members/::post
-------  POST api/v1/workspace/groups/<uuid:group_id>/members/<int:user_id>/::post
-------  POST api/v1/workspace/groups/<uuid:group_id>/projects/::post
-------  POST api/v1/workspace/groups/<uuid:group_id>/projects/<uuid:project_id>/::post
-------  POST api/v1/workspace/invites/::post
-------  POST api/v1/workspace/invites/<uuid:invite_id>/resend/::post
+++++++  POST api/v1/workspace/invites/accept/::post
-------  POST api/v1/workspace/invites/resend-all/::post
-------  POST api/v1/workspace/logo/::post
-------  POST api/v1/workspace/sso/providers/::post
-------  POST api/v1/workspace/sso/providers/<slug:slug>/test-connection/::post
-------  POST api/v1/workspace/transfer-ownership/::post
-++++++  POST api/v1/ws/ticket/::post
-++++++  PUT api/v1/^acceptance-criteria/(?P<pk>[^/.]+)/$::update
-----++  PUT api/v1/^calendars/(?P<pk>[^/.]+)/$::update
-++++++  PUT api/v1/^dependencies/(?P<pk>[^/.]+)/$::update
-++++++  PUT api/v1/^programs/(?P<pk>[^/.]+)/$::update
-----++  PUT api/v1/^programs/(?P<program_pk>[^/.]+)/webhooks/(?P<pk>[^/.]+)/$::update
-++++++  PUT api/v1/^project-resources/(?P<pk>[^/.]+)/$::update
-++++++  PUT api/v1/^projects/(?P<pk>[^/.]+)/$::update
-++++++  PUT api/v1/^projects/(?P<pk>[^/.]+)/calendars/$::working_calendars
-----++  PUT api/v1/^projects/(?P<project_pk>[^/.]+)/webhooks/(?P<pk>[^/.]+)/$::update
-++++++  PUT api/v1/^recurrence-rules/(?P<pk>[^/.]+)/$::update
----+++  PUT api/v1/^resource-skills/(?P<pk>[^/.]+)/$::update
-----++  PUT api/v1/^resources/(?P<pk>[^/.]+)/$::update
----+++  PUT api/v1/^skills/(?P<pk>[^/.]+)/$::update
-++++++  PUT api/v1/^task-relations/(?P<pk>[^/.]+)/$::update
-++++++  PUT api/v1/^task-resources/(?P<pk>[^/.]+)/$::update
-++++++  PUT api/v1/^task-skill-requirements/(?P<pk>[^/.]+)/$::update
-++++++  PUT api/v1/^tasks/(?P<pk>[^/.]+)/$::update
-----++  PUT api/v1/calendars/<calendar_pk>/exceptions/<pk>/::update
-----++  PUT api/v1/integrations/projects/<uuid:project_pk>/git-automation/::put
-++++++  PUT api/v1/me/connections/<slug:source>/::put
---++++  PUT api/v1/programs/<program_pk>/backlog-items/<pk>/::update
-----++  PUT api/v1/programs/<program_pk>/ceremonies/<pk>/::update
-++++++  PUT api/v1/projects/<pk>/board-config/::put
----+++  PUT api/v1/projects/<project_pk>/fields/<pk>/::update
-----++  PUT api/v1/projects/<project_pk>/labels/<pk>/::update
-----++  PUT api/v1/projects/<project_pk>/phases/<pk>/::update
---++++  PUT api/v1/projects/<project_pk>/risks/<pk>/::update
-++++++  PUT api/v1/projects/<project_pk>/tasks/<task_pk>/field-values/<field_id>/::put
-++++++  PUT api/v1/sprints/<pk>/::update
-++++++  PUT api/v1/sprints/<pk>/pulse/::pulse
-------  PUT api/v1/workspace/email-settings/::put
-------  PUT api/v1/workspace/sso/providers/<slug:slug>/::put
