github.com/dustinrc/deis@v1.10.1-0.20150917223407-0894a5fb979e/controller/api/urls.py (about)

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