github.com/amrnt/deis@v1.3.1/controller/api/urls.py (about) 1 from __future__ import unicode_literals 2 3 from django.conf import settings 4 from django.conf.urls import include, patterns, url 5 6 from api import routers, views 7 8 9 router = routers.ApiRouter() 10 11 # Add the generated REST URLs and login/logout endpoint 12 urlpatterns = patterns( 13 '', 14 url(r'^', include(router.urls)), 15 # application release components 16 url(r'^apps/(?P<id>{})/config/?'.format(settings.APP_URL_REGEX), 17 views.ConfigViewSet.as_view({'get': 'retrieve', 'post': 'create'})), 18 url(r'^apps/(?P<id>{})/builds/(?P<uuid>[-_\w]+)/?'.format(settings.APP_URL_REGEX), 19 views.BuildViewSet.as_view({'get': 'retrieve'})), 20 url(r'^apps/(?P<id>{})/builds/?'.format(settings.APP_URL_REGEX), 21 views.BuildViewSet.as_view({'get': 'list', 'post': 'create'})), 22 url(r'^apps/(?P<id>{})/releases/v(?P<version>[0-9]+)/?'.format(settings.APP_URL_REGEX), 23 views.ReleaseViewSet.as_view({'get': 'retrieve'})), 24 url(r'^apps/(?P<id>{})/releases/rollback/?'.format(settings.APP_URL_REGEX), 25 views.ReleaseViewSet.as_view({'post': 'rollback'})), 26 url(r'^apps/(?P<id>{})/releases/?'.format(settings.APP_URL_REGEX), 27 views.ReleaseViewSet.as_view({'get': 'list'})), 28 # application infrastructure 29 url(r'^apps/(?P<id>{})/containers/(?P<type>[-_\w]+)/(?P<num>[-_\w]+)/?'.format( 30 settings.APP_URL_REGEX), 31 views.ContainerViewSet.as_view({'get': 'retrieve'})), 32 url(r'^apps/(?P<id>{})/containers/(?P<type>[-_\w.]+)/?'.format(settings.APP_URL_REGEX), 33 views.ContainerViewSet.as_view({'get': 'list'})), 34 url(r'^apps/(?P<id>{})/containers/?'.format(settings.APP_URL_REGEX), 35 views.ContainerViewSet.as_view({'get': 'list'})), 36 # application domains 37 url(r'^apps/(?P<id>{})/domains/(?P<domain>[-\._\w]+)/?'.format(settings.APP_URL_REGEX), 38 views.DomainViewSet.as_view({'delete': 'destroy'})), 39 url(r'^apps/(?P<id>{})/domains/?'.format(settings.APP_URL_REGEX), 40 views.DomainViewSet.as_view({'post': 'create', 'get': 'list'})), 41 # application actions 42 url(r'^apps/(?P<id>{})/scale/?'.format(settings.APP_URL_REGEX), 43 views.AppViewSet.as_view({'post': 'scale'})), 44 url(r'^apps/(?P<id>{})/logs/?'.format(settings.APP_URL_REGEX), 45 views.AppViewSet.as_view({'get': 'logs'})), 46 url(r'^apps/(?P<id>{})/run/?'.format(settings.APP_URL_REGEX), 47 views.AppViewSet.as_view({'post': 'run'})), 48 # apps sharing 49 url(r'^apps/(?P<id>{})/perms/(?P<username>[-_\w]+)/?'.format(settings.APP_URL_REGEX), 50 views.AppPermsViewSet.as_view({'delete': 'destroy'})), 51 url(r'^apps/(?P<id>{})/perms/?'.format(settings.APP_URL_REGEX), 52 views.AppPermsViewSet.as_view({'get': 'list', 'post': 'create'})), 53 # apps base endpoint 54 url(r'^apps/(?P<id>{})/?'.format(settings.APP_URL_REGEX), 55 views.AppViewSet.as_view({'get': 'retrieve', 'delete': 'destroy'})), 56 url(r'^apps/?', 57 views.AppViewSet.as_view({'get': 'list', 'post': 'create'})), 58 # key 59 url(r'^keys/(?P<id>.+)/?', 60 views.KeyViewSet.as_view({ 61 'get': 'retrieve', 'delete': 'destroy'})), 62 url(r'^keys/?', 63 views.KeyViewSet.as_view({'get': 'list', 'post': 'create'})), 64 # hooks 65 url(r'^hooks/push/?', 66 views.PushHookViewSet.as_view({'post': 'create'})), 67 url(r'^hooks/build/?', 68 views.BuildHookViewSet.as_view({'post': 'create'})), 69 url(r'^hooks/config/?', 70 views.ConfigHookViewSet.as_view({'post': 'create'})), 71 # authn / authz 72 url(r'^auth/register/?', 73 views.UserRegistrationViewSet.as_view({'post': 'create'})), 74 url(r'^auth/cancel/?', 75 views.UserManagementViewSet.as_view({'delete': 'destroy'})), 76 url(r'^auth/passwd/?', 77 views.UserManagementViewSet.as_view({'post': 'passwd'})), 78 url(r'^auth/login/', 79 'rest_framework.authtoken.views.obtain_auth_token'), 80 # admin sharing 81 url(r'^admin/perms/(?P<username>[-_\w]+)/?', 82 views.AdminPermsViewSet.as_view({'delete': 'destroy'})), 83 url(r'^admin/perms/?', 84 views.AdminPermsViewSet.as_view({'get': 'list', 'post': 'create'})), 85 )