+ # API v0
+ url(r'^api/multicloud/v0/vim_types$',
+ VIMTypes.as_view()),
+ url(r'^api/multicloud/v0/check_vim_capacity$',
+ CheckCapacity.as_view()),
+ url(r'^api/multicloud/v0/(?P<vimid>[0-9a-zA-Z_-]+)/identity/v3$',
+ Identity.as_view()),
+ url(r'^api/multicloud/v0/(?P<vimid>[0-9a-zA-Z_-]+)/identity/v3'
+ r'/auth/tokens$', Identity.as_view()),
+ url(r'^api/multicloud/v0/(?P<vimid>[0-9a-zA-Z_-]+)/registry$',
+ Registry.as_view()),
+ url(r'^api/multicloud/v0/(?P<vimid>[0-9a-zA-Z_-]+)$',
+ UnRegistry.as_view()),
+ url(r'^api/multicloud/v0/(?P<vimid>[0-9a-zA-Z_-]+)/extensions$',
+ Extension.as_view()),
+ url(r'^api/multicloud/v0/(?P<vimid>[0-9a-zA-Z_-]+)',
+ Forward.as_view()),
+
+ # API v1
+ url(r'^api/multicloud/v1/vim_types$',
+ APIv1VIMTypes.as_view()),
+ url(r'^api/multicloud/v1/check_vim_capacity$',
+ APIv1CheckCapacity.as_view()),
+ url(r'^api/multicloud/v1/(?P<cloud_owner>[0-9a-zA-Z_-]+)'
+ r'/(?P<cloud_region_id>[0-9a-zA-Z_-]+)/identity/v3$',
+ APIv1Identity.as_view()),
+ url(r'^api/multicloud/v1/(?P<cloud_owner>[0-9a-zA-Z_-]+)'
+ r'/(?P<cloud_region_id>[0-9a-zA-Z_-]+)/identity/v3'
+ r'/auth/tokens$', APIv1Identity.as_view()),
+ url(r'^api/multicloud/v1/(?P<cloud_owner>[0-9a-zA-Z_-]+)'
+ r'/(?P<cloud_region_id>[0-9a-zA-Z_-]+)/registry$',
+ APIv1Registry.as_view()),
+ url(r'^api/multicloud/v1/(?P<cloud_owner>[0-9a-zA-Z_-]+)'
+ r'/(?P<cloud_region_id>[0-9a-zA-Z_-]+)$',
+ APIv1UnRegistry.as_view()),
+ url(r'^api/multicloud/v1/(?P<cloud_owner>[0-9a-zA-Z_-]+)'
+ r'/(?P<cloud_region_id>[0-9a-zA-Z_-]+)/extensions$',
+ APIv1Extension.as_view()),
+ url(r'^api/multicloud/v1/(?P<cloud_owner>[0-9a-zA-Z_-]+)'
+ r'/(?P<cloud_region_id>[0-9a-zA-Z_-]+)/infra_workload',
+ APIv1InfraWorkload.as_view()),
+ url(r'^api/multicloud/v1/(?P<cloud_owner>[0-9a-zA-Z_-]+)'
+ r'/(?P<cloud_region_id>[0-9a-zA-Z_-]+)',
+ APIv1Forward.as_view()),