{"action":"created","comment":{"url":"https://api.github.com/repos/ManageIQ/manageiq/pulls/comments/69599015","id":69599015,"diff_hunk":"@@ -2629,11 +2629,57 @@\n   apiver_regex = /v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/\n \n   match '/api/*path'   => 'api#handle_options_request', :via => [:options]\n-  get '/api(/:version)'           => 'api#show',    :format => 'json', :version => apiver_regex\n+  get '/api(/:version)'           => 'api#show_entrypoint',    :format => 'json', :version => apiver_regex\n+\n+  def action_for(verb, collection)\n+    prefix = {\n+      :get => \"show\",\n+      :post => \"update\",\n+      :put => \"update\",\n+      :patch => \"update\",\n+      :delete => \"destroy\"\n+    }[verb]","path":"config/routes.rb","position":14,"original_position":14,"commit_id":"874a780a211073cbc98809daabc016b22057147c","original_commit_id":"874a780a211073cbc98809daabc016b22057147c","user":{"login":"Fryguy","id":52120,"avatar_url":"https://avatars.githubusercontent.com/u/52120?v=3","gravatar_id":"","url":"https://api.github.com/users/Fryguy","html_url":"https://github.com/Fryguy","followers_url":"https://api.github.com/users/Fryguy/followers","following_url":"https://api.github.com/users/Fryguy/following{/other_user}","gists_url":"https://api.github.com/users/Fryguy/gists{/gist_id}","starred_url":"https://api.github.com/users/Fryguy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Fryguy/subscriptions","organizations_url":"https://api.github.com/users/Fryguy/orgs","repos_url":"https://api.github.com/users/Fryguy/repos","events_url":"https://api.github.com/users/Fryguy/events{/privacy}","received_events_url":"https://api.github.com/users/Fryguy/received_events","type":"User","site_admin":false},"body":"This hash could be moved out to a constant so it's not rebuilt on every call to action_for.","created_at":"2016-07-05T16:56:22Z","updated_at":"2016-07-05T16:56:22Z","html_url":"https://github.com/ManageIQ/manageiq/pull/9606#discussion_r69599015","pull_request_url":"https://api.github.com/repos/ManageIQ/manageiq/pulls/9606","_links":{"self":{"href":"https://api.github.com/repos/ManageIQ/manageiq/pulls/comments/69599015"},"html":{"href":"https://github.com/ManageIQ/manageiq/pull/9606#discussion_r69599015"},"pull_request":{"href":"https://api.github.com/repos/ManageIQ/manageiq/pulls/9606"}}},"pull_request":{"url":"https://api.github.com/repos/ManageIQ/manageiq/pulls/9606","id":76289273,"html_url":"https://github.com/ManageIQ/manageiq/pull/9606","diff_url":"https://github.com/ManageIQ/manageiq/pull/9606.diff","patch_url":"https://github.com/ManageIQ/manageiq/pull/9606.patch","issue_url":"https://api.github.com/repos/ManageIQ/manageiq/issues/9606","number":9606,"state":"open","locked":false,"title":"[POC] API/Rails routing (do not merge)","user":{"login":"imtayadeway","id":1710874,"avatar_url":"https://avatars.githubusercontent.com/u/1710874?v=3","gravatar_id":"","url":"https://api.github.com/users/imtayadeway","html_url":"https://github.com/imtayadeway","followers_url":"https://api.github.com/users/imtayadeway/followers","following_url":"https://api.github.com/users/imtayadeway/following{/other_user}","gists_url":"https://api.github.com/users/imtayadeway/gists{/gist_id}","starred_url":"https://api.github.com/users/imtayadeway/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/imtayadeway/subscriptions","organizations_url":"https://api.github.com/users/imtayadeway/orgs","repos_url":"https://api.github.com/users/imtayadeway/repos","events_url":"https://api.github.com/users/imtayadeway/events{/privacy}","received_events_url":"https://api.github.com/users/imtayadeway/received_events","type":"User","site_admin":false},"body":"Purpose or Intent\r\n-----------------\r\n\r\nThis is a POC for utilizing Rails' routing more fully in the API. It relies on #9579 and #9590, so commits from those PRs have been cherry-picked hence do not merge :wink:\r\n\r\nThe main drive behind this PR is to get to a more object-oriented architecture for the API code. With the routing logic moved out of the `ApiController`, I think it would be trivial to move away from the module-based resource code, replacing with new resource-specific controllers for the API that largely do the same thing, but which inherit from (and are polymorphic with) the base `ApiController` (i.e. implement `#show`, `#update`, `#destroy`). Where we are currently sending methods dynamically for all API requests to find the right action, this would predefine it in the routes, removing a layer of magic. :sparkles: \r\n\r\nAnother benefit I can see from this is that `rake routes` now does more or less what I would expect:\r\n```\r\ntim@tim-thinkpad:~/src/manageiq$ be rake routes | grep api\r\n                             OPTIONS /api/*path(.:format)                                                       api#handle_options_request\r\n                             GET     /api(/:version)(.:format)                                                  api#show_entrypoint {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/auth(.:format)                                             api#show_auth {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             DELETE  /api(/:version)/auth(.:format)                                             api#destroy_auth {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/automation_requests(/:c_id)(.:format)                      api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             POST    /api(/:version)/automation_requests(/:c_id)(.:format)                      api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/automation_requests/:c_id/request_tasks(/:s_id)(.:format)  api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/automation_requests/:c_id/tasks(/:s_id)(.:format)          api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/availability_zones(/:c_id)(.:format)                       api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/categories(/:c_id)(.:format)                               api#show_categories {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             POST    /api(/:version)/categories(/:c_id)(.:format)                               api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             DELETE  /api(/:version)/categories(/:c_id)(.:format)                               api#destroy_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/categories/:c_id/tags(/:s_id)(.:format)                    api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             POST    /api(/:version)/categories/:c_id/tags(/:s_id)(.:format)                    api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             DELETE  /api(/:version)/categories/:c_id/tags(/:s_id)(.:format)                    api#destroy_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/chargebacks(/:c_id)(.:format)                              api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             PUT     /api(/:version)/chargebacks(/:c_id)(.:format)                              api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             POST    /api(/:version)/chargebacks(/:c_id)(.:format)                              api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             PATCH   /api(/:version)/chargebacks(/:c_id)(.:format)                              api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             DELETE  /api(/:version)/chargebacks(/:c_id)(.:format)                              api#destroy_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/chargebacks/:c_id/rates(/:s_id)(.:format)                  api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             PUT     /api(/:version)/chargebacks/:c_id/rates(/:s_id)(.:format)                  api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             POST    /api(/:version)/chargebacks/:c_id/rates(/:s_id)(.:format)                  api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             PATCH   /api(/:version)/chargebacks/:c_id/rates(/:s_id)(.:format)                  api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             DELETE  /api(/:version)/chargebacks/:c_id/rates(/:s_id)(.:format)                  api#destroy_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/container_deployments(/:c_id)(.:format)                    api#show_container_deployments {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             PUT     /api(/:version)/container_deployments(/:c_id)(.:format)                    api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             POST    /api(/:version)/container_deployments(/:c_id)(.:format)                    api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             PATCH   /api(/:version)/container_deployments(/:c_id)(.:format)                    api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             DELETE  /api(/:version)/container_deployments(/:c_id)(.:format)                    api#destroy_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/currencies(/:c_id)(.:format)                               api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/measures(/:c_id)(.:format)                                 api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/clusters(/:c_id)(.:format)                                 api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             POST    /api(/:version)/clusters(/:c_id)(.:format)                                 api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/clusters/:c_id/tags(/:s_id)(.:format)                      api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             POST    /api(/:version)/clusters/:c_id/tags(/:s_id)(.:format)                      api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             DELETE  /api(/:version)/clusters/:c_id/tags(/:s_id)(.:format)                      api#destroy_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/clusters/:c_id/policies(/:s_id)(.:format)                  api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             POST    /api(/:version)/clusters/:c_id/policies(/:s_id)(.:format)                  api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/clusters/:c_id/policy_profiles(/:s_id)(.:format)           api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             POST    /api(/:version)/clusters/:c_id/policy_profiles(/:s_id)(.:format)           api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/conditions(/:c_id)(.:format)                               api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/data_stores(/:c_id)(.:format)                              api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             POST    /api(/:version)/data_stores(/:c_id)(.:format)                              api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/data_stores/:c_id/tags(/:s_id)(.:format)                   api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             POST    /api(/:version)/data_stores/:c_id/tags(/:s_id)(.:format)                   api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             DELETE  /api(/:version)/data_stores/:c_id/tags(/:s_id)(.:format)                   api#destroy_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/events(/:c_id)(.:format)                                   api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/features(/:c_id)(.:format)                                 api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             POST    /api(/:version)/features(/:c_id)(.:format)                                 api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/flavors(/:c_id)(.:format)                                  api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/groups(/:c_id)(.:format)                                   api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             PUT     /api(/:version)/groups(/:c_id)(.:format)                                   api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             POST    /api(/:version)/groups(/:c_id)(.:format)                                   api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             PATCH   /api(/:version)/groups(/:c_id)(.:format)                                   api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             DELETE  /api(/:version)/groups(/:c_id)(.:format)                                   api#destroy_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/groups/:c_id/tags(/:s_id)(.:format)                        api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             POST    /api(/:version)/groups/:c_id/tags(/:s_id)(.:format)                        api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             DELETE  /api(/:version)/groups/:c_id/tags(/:s_id)(.:format)                        api#destroy_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/hosts(/:c_id)(.:format)                                    api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             POST    /api(/:version)/hosts(/:c_id)(.:format)                                    api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/hosts/:c_id/tags(/:s_id)(.:format)                         api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             POST    /api(/:version)/hosts/:c_id/tags(/:s_id)(.:format)                         api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             DELETE  /api(/:version)/hosts/:c_id/tags(/:s_id)(.:format)                         api#destroy_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/hosts/:c_id/policies(/:s_id)(.:format)                     api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             POST    /api(/:version)/hosts/:c_id/policies(/:s_id)(.:format)                     api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/hosts/:c_id/policy_profiles(/:s_id)(.:format)              api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             POST    /api(/:version)/hosts/:c_id/policy_profiles(/:s_id)(.:format)              api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/instances(/:c_id)(.:format)                                api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             POST    /api(/:version)/instances(/:c_id)(.:format)                                api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/pictures(/:c_id)(.:format)                                 api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/policies(/:c_id)(.:format)                                 api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             POST    /api(/:version)/policies(/:c_id)(.:format)                                 api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/policies/:c_id/conditions(/:s_id)(.:format)                api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/policies/:c_id/policy_actions(/:s_id)(.:format)            api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/policies/:c_id/events(/:s_id)(.:format)                    api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/policy_actions(/:c_id)(.:format)                           api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/policy_profiles(/:c_id)(.:format)                          api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             POST    /api(/:version)/policy_profiles(/:c_id)(.:format)                          api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/policy_profiles/:c_id/policies(/:s_id)(.:format)           api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             POST    /api(/:version)/policy_profiles/:c_id/policies(/:s_id)(.:format)           api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/providers(/:c_id)(.:format)                                api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             POST    /api(/:version)/providers(/:c_id)(.:format)                                api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             DELETE  /api(/:version)/providers(/:c_id)(.:format)                                api#destroy_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/providers/:c_id/tags(/:s_id)(.:format)                     api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             POST    /api(/:version)/providers/:c_id/tags(/:s_id)(.:format)                     api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             DELETE  /api(/:version)/providers/:c_id/tags(/:s_id)(.:format)                     api#destroy_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/providers/:c_id/policies(/:s_id)(.:format)                 api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             POST    /api(/:version)/providers/:c_id/policies(/:s_id)(.:format)                 api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/providers/:c_id/policy_profiles(/:s_id)(.:format)          api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             POST    /api(/:version)/providers/:c_id/policy_profiles(/:s_id)(.:format)          api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/provision_dialogs(/:c_id)(.:format)                        api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/provision_requests(/:c_id)(.:format)                       api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             POST    /api(/:version)/provision_requests(/:c_id)(.:format)                       api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/provision_requests/:c_id/request_tasks(/:s_id)(.:format)   api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/provision_requests/:c_id/tasks(/:s_id)(.:format)           api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/rates(/:c_id)(.:format)                                    api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             PUT     /api(/:version)/rates(/:c_id)(.:format)                                    api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             POST    /api(/:version)/rates(/:c_id)(.:format)                                    api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             PATCH   /api(/:version)/rates(/:c_id)(.:format)                                    api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             DELETE  /api(/:version)/rates(/:c_id)(.:format)                                    api#destroy_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/reports(/:c_id)(.:format)                                  api#show_reports {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             POST    /api(/:version)/reports(/:c_id)(.:format)                                  api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/reports/:c_id/results(/:s_id)(.:format)                    api#show_results {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/request_tasks(/:c_id)(.:format)                            api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/requests(/:c_id)(.:format)                                 api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/resource_pools(/:c_id)(.:format)                           api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             POST    /api(/:version)/resource_pools(/:c_id)(.:format)                           api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/resource_pools/:c_id/tags(/:s_id)(.:format)                api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             POST    /api(/:version)/resource_pools/:c_id/tags(/:s_id)(.:format)                api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             DELETE  /api(/:version)/resource_pools/:c_id/tags(/:s_id)(.:format)                api#destroy_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/resource_pools/:c_id/policies(/:s_id)(.:format)            api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             POST    /api(/:version)/resource_pools/:c_id/policies(/:s_id)(.:format)            api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/resource_pools/:c_id/policy_profiles(/:s_id)(.:format)     api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             POST    /api(/:version)/resource_pools/:c_id/policy_profiles(/:s_id)(.:format)     api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/results(/:c_id)(.:format)                                  api#show_results {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/roles(/:c_id)(.:format)                                    api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             POST    /api(/:version)/roles(/:c_id)(.:format)                                    api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             DELETE  /api(/:version)/roles(/:c_id)(.:format)                                    api#destroy_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/roles/:c_id/features(/:s_id)(.:format)                     api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             POST    /api(/:version)/roles/:c_id/features(/:s_id)(.:format)                     api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/security_groups(/:c_id)(.:format)                          api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/servers(/:c_id)(.:format)                                  api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/service_catalogs(/:c_id)(.:format)                         api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             PUT     /api(/:version)/service_catalogs(/:c_id)(.:format)                         api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             POST    /api(/:version)/service_catalogs(/:c_id)(.:format)                         api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             PATCH   /api(/:version)/service_catalogs(/:c_id)(.:format)                         api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             DELETE  /api(/:version)/service_catalogs(/:c_id)(.:format)                         api#destroy_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/service_catalogs/:c_id/service_templates(/:s_id)(.:format) api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             PUT     /api(/:version)/service_catalogs/:c_id/service_templates(/:s_id)(.:format) api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             POST    /api(/:version)/service_catalogs/:c_id/service_templates(/:s_id)(.:format) api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             PATCH   /api(/:version)/service_catalogs/:c_id/service_templates(/:s_id)(.:format) api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             DELETE  /api(/:version)/service_catalogs/:c_id/service_templates(/:s_id)(.:format) api#destroy_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/service_dialogs(/:c_id)(.:format)                          api#show_service_dialogs {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             POST    /api(/:version)/service_dialogs(/:c_id)(.:format)                          api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/service_orders(/:c_id)(.:format)                           api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             PUT     /api(/:version)/service_orders(/:c_id)(.:format)                           api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             POST    /api(/:version)/service_orders(/:c_id)(.:format)                           api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             PATCH   /api(/:version)/service_orders(/:c_id)(.:format)                           api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             DELETE  /api(/:version)/service_orders(/:c_id)(.:format)                           api#destroy_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/service_orders/:c_id/service_requests(/:s_id)(.:format)    api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             POST    /api(/:version)/service_orders/:c_id/service_requests(/:s_id)(.:format)    api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/service_requests(/:c_id)(.:format)                         api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             POST    /api(/:version)/service_requests(/:c_id)(.:format)                         api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/service_requests/:c_id/request_tasks(/:s_id)(.:format)     api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/service_requests/:c_id/tasks(/:s_id)(.:format)             api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/service_templates(/:c_id)(.:format)                        api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             PUT     /api(/:version)/service_templates(/:c_id)(.:format)                        api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             POST    /api(/:version)/service_templates(/:c_id)(.:format)                        api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             PATCH   /api(/:version)/service_templates(/:c_id)(.:format)                        api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             DELETE  /api(/:version)/service_templates(/:c_id)(.:format)                        api#destroy_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/service_templates/:c_id/resource_actions(/:s_id)(.:format) api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/service_templates/:c_id/tags(/:s_id)(.:format)             api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             POST    /api(/:version)/service_templates/:c_id/tags(/:s_id)(.:format)             api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             DELETE  /api(/:version)/service_templates/:c_id/tags(/:s_id)(.:format)             api#destroy_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/service_templates/:c_id/service_requests(/:s_id)(.:format) api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             POST    /api(/:version)/service_templates/:c_id/service_requests(/:s_id)(.:format) api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/service_templates/:c_id/service_dialogs(/:s_id)(.:format)  api#show_service_dialogs {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             POST    /api(/:version)/service_templates/:c_id/service_dialogs(/:s_id)(.:format)  api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/services(/:c_id)(.:format)                                 api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             PUT     /api(/:version)/services(/:c_id)(.:format)                                 api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             POST    /api(/:version)/services(/:c_id)(.:format)                                 api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             PATCH   /api(/:version)/services(/:c_id)(.:format)                                 api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             DELETE  /api(/:version)/services(/:c_id)(.:format)                                 api#destroy_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/services/:c_id/tags(/:s_id)(.:format)                      api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             POST    /api(/:version)/services/:c_id/tags(/:s_id)(.:format)                      api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             DELETE  /api(/:version)/services/:c_id/tags(/:s_id)(.:format)                      api#destroy_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/services/:c_id/service_dialogs(/:s_id)(.:format)           api#show_service_dialogs {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             POST    /api(/:version)/services/:c_id/service_dialogs(/:s_id)(.:format)           api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/services/:c_id/vms(/:s_id)(.:format)                       api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             POST    /api(/:version)/services/:c_id/vms(/:s_id)(.:format)                       api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             DELETE  /api(/:version)/services/:c_id/vms(/:s_id)(.:format)                       api#destroy_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/settings(/:c_id)(.:format)                                 api#show_settings {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/tags(/:c_id)(.:format)                                     api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             POST    /api(/:version)/tags(/:c_id)(.:format)                                     api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             DELETE  /api(/:version)/tags(/:c_id)(.:format)                                     api#destroy_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/tasks(/:c_id)(.:format)                                    api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/templates(/:c_id)(.:format)                                api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             POST    /api(/:version)/templates(/:c_id)(.:format)                                api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             DELETE  /api(/:version)/templates(/:c_id)(.:format)                                api#destroy_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/templates/:c_id/tags(/:s_id)(.:format)                     api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             POST    /api(/:version)/templates/:c_id/tags(/:s_id)(.:format)                     api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             DELETE  /api(/:version)/templates/:c_id/tags(/:s_id)(.:format)                     api#destroy_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/templates/:c_id/policies(/:s_id)(.:format)                 api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             POST    /api(/:version)/templates/:c_id/policies(/:s_id)(.:format)                 api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/templates/:c_id/policy_profiles(/:s_id)(.:format)          api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             POST    /api(/:version)/templates/:c_id/policy_profiles(/:s_id)(.:format)          api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/tenants(/:c_id)(.:format)                                  api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             PUT     /api(/:version)/tenants(/:c_id)(.:format)                                  api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             POST    /api(/:version)/tenants(/:c_id)(.:format)                                  api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             PATCH   /api(/:version)/tenants(/:c_id)(.:format)                                  api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             DELETE  /api(/:version)/tenants(/:c_id)(.:format)                                  api#destroy_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/tenants/:c_id/tags(/:s_id)(.:format)                       api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             POST    /api(/:version)/tenants/:c_id/tags(/:s_id)(.:format)                       api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             DELETE  /api(/:version)/tenants/:c_id/tags(/:s_id)(.:format)                       api#destroy_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/tenants/:c_id/quotas(/:s_id)(.:format)                     api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             PUT     /api(/:version)/tenants/:c_id/quotas(/:s_id)(.:format)                     api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             POST    /api(/:version)/tenants/:c_id/quotas(/:s_id)(.:format)                     api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             PATCH   /api(/:version)/tenants/:c_id/quotas(/:s_id)(.:format)                     api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             DELETE  /api(/:version)/tenants/:c_id/quotas(/:s_id)(.:format)                     api#destroy_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/users(/:c_id)(.:format)                                    api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             PUT     /api(/:version)/users(/:c_id)(.:format)                                    api#update_users {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             POST    /api(/:version)/users(/:c_id)(.:format)                                    api#update_users {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             PATCH   /api(/:version)/users(/:c_id)(.:format)                                    api#update_users {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             DELETE  /api(/:version)/users(/:c_id)(.:format)                                    api#destroy_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/users/:c_id/tags(/:s_id)(.:format)                         api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             POST    /api(/:version)/users/:c_id/tags(/:s_id)(.:format)                         api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             DELETE  /api(/:version)/users/:c_id/tags(/:s_id)(.:format)                         api#destroy_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/vms(/:c_id)(.:format)                                      api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             POST    /api(/:version)/vms(/:c_id)(.:format)                                      api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             DELETE  /api(/:version)/vms(/:c_id)(.:format)                                      api#destroy_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/vms/:c_id/tags(/:s_id)(.:format)                           api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             POST    /api(/:version)/vms/:c_id/tags(/:s_id)(.:format)                           api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             DELETE  /api(/:version)/vms/:c_id/tags(/:s_id)(.:format)                           api#destroy_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/vms/:c_id/policies(/:s_id)(.:format)                       api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             POST    /api(/:version)/vms/:c_id/policies(/:s_id)(.:format)                       api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/vms/:c_id/policy_profiles(/:s_id)(.:format)                api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             POST    /api(/:version)/vms/:c_id/policy_profiles(/:s_id)(.:format)                api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/vms/:c_id/accounts(/:s_id)(.:format)                       api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/vms/:c_id/custom_attributes(/:s_id)(.:format)              api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             POST    /api(/:version)/vms/:c_id/custom_attributes(/:s_id)(.:format)              api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             DELETE  /api(/:version)/vms/:c_id/custom_attributes(/:s_id)(.:format)              api#destroy_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/vms/:c_id/software(/:s_id)(.:format)                       api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/zones(/:c_id)(.:format)                                    api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             GET     /api(/:version)/virtual_templates(/:c_id)(.:format)                        api#show_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             PUT     /api(/:version)/virtual_templates(/:c_id)(.:format)                        api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             POST    /api(/:version)/virtual_templates(/:c_id)(.:format)                        api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             PATCH   /api(/:version)/virtual_templates(/:c_id)(.:format)                        api#update_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n                             DELETE  /api(/:version)/virtual_templates(/:c_id)(.:format)                        api#destroy_generic {:format=>/json/, :version=>/v[\\d]+(\\.[\\da-zA-Z]+)*(\\-[\\da-zA-Z]+)?/}\r\n```\r\n\r\n@abellotti I had concerns last week that a move in this direction would be incompatible with future plans for the API, as mentioned in #9551. I no longer think that is the case, as I think it would be easy to define arbitrary resource paths separately. Nonetheless, I'd be very grateful if you could weigh-in on this. If it's not doable, I may have to rethink plans for making the API more OO :grin:\r\n","created_at":"2016-07-05T14:59:20Z","updated_at":"2016-07-05T16:56:22Z","closed_at":null,"merged_at":null,"merge_commit_sha":"4e3d13108f149284f0b86a3f85922045cbb52b38","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/ManageIQ/manageiq/pulls/9606/commits","review_comments_url":"https://api.github.com/repos/ManageIQ/manageiq/pulls/9606/comments","review_comment_url":"https://api.github.com/repos/ManageIQ/manageiq/pulls/comments{/number}","comments_url":"https://api.github.com/repos/ManageIQ/manageiq/issues/9606/comments","statuses_url":"https://api.github.com/repos/ManageIQ/manageiq/statuses/874a780a211073cbc98809daabc016b22057147c","head":{"label":"imtayadeway:poc/api-rails-routing","ref":"poc/api-rails-routing","sha":"874a780a211073cbc98809daabc016b22057147c","user":{"login":"imtayadeway","id":1710874,"avatar_url":"https://avatars.githubusercontent.com/u/1710874?v=3","gravatar_id":"","url":"https://api.github.com/users/imtayadeway","html_url":"https://github.com/imtayadeway","followers_url":"https://api.github.com/users/imtayadeway/followers","following_url":"https://api.github.com/users/imtayadeway/following{/other_user}","gists_url":"https://api.github.com/users/imtayadeway/gists{/gist_id}","starred_url":"https://api.github.com/users/imtayadeway/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/imtayadeway/subscriptions","organizations_url":"https://api.github.com/users/imtayadeway/orgs","repos_url":"https://api.github.com/users/imtayadeway/repos","events_url":"https://api.github.com/users/imtayadeway/events{/privacy}","received_events_url":"https://api.github.com/users/imtayadeway/received_events","type":"User","site_admin":false},"repo":{"id":34932503,"name":"manageiq","full_name":"imtayadeway/manageiq","owner":{"login":"imtayadeway","id":1710874,"avatar_url":"https://avatars.githubusercontent.com/u/1710874?v=3","gravatar_id":"","url":"https://api.github.com/users/imtayadeway","html_url":"https://github.com/imtayadeway","followers_url":"https://api.github.com/users/imtayadeway/followers","following_url":"https://api.github.com/users/imtayadeway/following{/other_user}","gists_url":"https://api.github.com/users/imtayadeway/gists{/gist_id}","starred_url":"https://api.github.com/users/imtayadeway/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/imtayadeway/subscriptions","organizations_url":"https://api.github.com/users/imtayadeway/orgs","repos_url":"https://api.github.com/users/imtayadeway/repos","events_url":"https://api.github.com/users/imtayadeway/events{/privacy}","received_events_url":"https://api.github.com/users/imtayadeway/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/imtayadeway/manageiq","description":"ManageIQ Cloud Management Platform","fork":true,"url":"https://api.github.com/repos/imtayadeway/manageiq","forks_url":"https://api.github.com/repos/imtayadeway/manageiq/forks","keys_url":"https://api.github.com/repos/imtayadeway/manageiq/keys{/key_id}","collaborators_url":"https://api.github.com/repos/imtayadeway/manageiq/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/imtayadeway/manageiq/teams","hooks_url":"https://api.github.com/repos/imtayadeway/manageiq/hooks","issue_events_url":"https://api.github.com/repos/imtayadeway/manageiq/issues/events{/number}","events_url":"https://api.github.com/repos/imtayadeway/manageiq/events","assignees_url":"https://api.github.com/repos/imtayadeway/manageiq/assignees{/user}","branches_url":"https://api.github.com/repos/imtayadeway/manageiq/branches{/branch}","tags_url":"https://api.github.com/repos/imtayadeway/manageiq/tags","blobs_url":"https://api.github.com/repos/imtayadeway/manageiq/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/imtayadeway/manageiq/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/imtayadeway/manageiq/git/refs{/sha}","trees_url":"https://api.github.com/repos/imtayadeway/manageiq/git/trees{/sha}","statuses_url":"https://api.github.com/repos/imtayadeway/manageiq/statuses/{sha}","languages_url":"https://api.github.com/repos/imtayadeway/manageiq/languages","stargazers_url":"https://api.github.com/repos/imtayadeway/manageiq/stargazers","contributors_url":"https://api.github.com/repos/imtayadeway/manageiq/contributors","subscribers_url":"https://api.github.com/repos/imtayadeway/manageiq/subscribers","subscription_url":"https://api.github.com/repos/imtayadeway/manageiq/subscription","commits_url":"https://api.github.com/repos/imtayadeway/manageiq/commits{/sha}","git_commits_url":"https://api.github.com/repos/imtayadeway/manageiq/git/commits{/sha}","comments_url":"https://api.github.com/repos/imtayadeway/manageiq/comments{/number}","issue_comment_url":"https://api.github.com/repos/imtayadeway/manageiq/issues/comments{/number}","contents_url":"https://api.github.com/repos/imtayadeway/manageiq/contents/{+path}","compare_url":"https://api.github.com/repos/imtayadeway/manageiq/compare/{base}...{head}","merges_url":"https://api.github.com/repos/imtayadeway/manageiq/merges","archive_url":"https://api.github.com/repos/imtayadeway/manageiq/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/imtayadeway/manageiq/downloads","issues_url":"https://api.github.com/repos/imtayadeway/manageiq/issues{/number}","pulls_url":"https://api.github.com/repos/imtayadeway/manageiq/pulls{/number}","milestones_url":"https://api.github.com/repos/imtayadeway/manageiq/milestones{/number}","notifications_url":"https://api.github.com/repos/imtayadeway/manageiq/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/imtayadeway/manageiq/labels{/name}","releases_url":"https://api.github.com/repos/imtayadeway/manageiq/releases{/id}","deployments_url":"https://api.github.com/repos/imtayadeway/manageiq/deployments","created_at":"2015-05-02T02:08:43Z","updated_at":"2016-01-11T19:09:23Z","pushed_at":"2016-07-05T16:40:01Z","git_url":"git://github.com/imtayadeway/manageiq.git","ssh_url":"git@github.com:imtayadeway/manageiq.git","clone_url":"https://github.com/imtayadeway/manageiq.git","svn_url":"https://github.com/imtayadeway/manageiq","homepage":"manageiq.org","size":132233,"stargazers_count":0,"watchers_count":0,"language":"Ruby","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"ManageIQ:master","ref":"master","sha":"312895fb05248fdc63a6ba120640f5a9ee1f5a90","user":{"login":"ManageIQ","id":1125575,"avatar_url":"https://avatars.githubusercontent.com/u/1125575?v=3","gravatar_id":"","url":"https://api.github.com/users/ManageIQ","html_url":"https://github.com/ManageIQ","followers_url":"https://api.github.com/users/ManageIQ/followers","following_url":"https://api.github.com/users/ManageIQ/following{/other_user}","gists_url":"https://api.github.com/users/ManageIQ/gists{/gist_id}","starred_url":"https://api.github.com/users/ManageIQ/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ManageIQ/subscriptions","organizations_url":"https://api.github.com/users/ManageIQ/orgs","repos_url":"https://api.github.com/users/ManageIQ/repos","events_url":"https://api.github.com/users/ManageIQ/events{/privacy}","received_events_url":"https://api.github.com/users/ManageIQ/received_events","type":"Organization","site_admin":false},"repo":{"id":20789757,"name":"manageiq","full_name":"ManageIQ/manageiq","owner":{"login":"ManageIQ","id":1125575,"avatar_url":"https://avatars.githubusercontent.com/u/1125575?v=3","gravatar_id":"","url":"https://api.github.com/users/ManageIQ","html_url":"https://github.com/ManageIQ","followers_url":"https://api.github.com/users/ManageIQ/followers","following_url":"https://api.github.com/users/ManageIQ/following{/other_user}","gists_url":"https://api.github.com/users/ManageIQ/gists{/gist_id}","starred_url":"https://api.github.com/users/ManageIQ/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ManageIQ/subscriptions","organizations_url":"https://api.github.com/users/ManageIQ/orgs","repos_url":"https://api.github.com/users/ManageIQ/repos","events_url":"https://api.github.com/users/ManageIQ/events{/privacy}","received_events_url":"https://api.github.com/users/ManageIQ/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/ManageIQ/manageiq","description":"ManageIQ Cloud Management Platform","fork":false,"url":"https://api.github.com/repos/ManageIQ/manageiq","forks_url":"https://api.github.com/repos/ManageIQ/manageiq/forks","keys_url":"https://api.github.com/repos/ManageIQ/manageiq/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ManageIQ/manageiq/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ManageIQ/manageiq/teams","hooks_url":"https://api.github.com/repos/ManageIQ/manageiq/hooks","issue_events_url":"https://api.github.com/repos/ManageIQ/manageiq/issues/events{/number}","events_url":"https://api.github.com/repos/ManageIQ/manageiq/events","assignees_url":"https://api.github.com/repos/ManageIQ/manageiq/assignees{/user}","branches_url":"https://api.github.com/repos/ManageIQ/manageiq/branches{/branch}","tags_url":"https://api.github.com/repos/ManageIQ/manageiq/tags","blobs_url":"https://api.github.com/repos/ManageIQ/manageiq/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ManageIQ/manageiq/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ManageIQ/manageiq/git/refs{/sha}","trees_url":"https://api.github.com/repos/ManageIQ/manageiq/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ManageIQ/manageiq/statuses/{sha}","languages_url":"https://api.github.com/repos/ManageIQ/manageiq/languages","stargazers_url":"https://api.github.com/repos/ManageIQ/manageiq/stargazers","contributors_url":"https://api.github.com/repos/ManageIQ/manageiq/contributors","subscribers_url":"https://api.github.com/repos/ManageIQ/manageiq/subscribers","subscription_url":"https://api.github.com/repos/ManageIQ/manageiq/subscription","commits_url":"https://api.github.com/repos/ManageIQ/manageiq/commits{/sha}","git_commits_url":"https://api.github.com/repos/ManageIQ/manageiq/git/commits{/sha}","comments_url":"https://api.github.com/repos/ManageIQ/manageiq/comments{/number}","issue_comment_url":"https://api.github.com/repos/ManageIQ/manageiq/issues/comments{/number}","contents_url":"https://api.github.com/repos/ManageIQ/manageiq/contents/{+path}","compare_url":"https://api.github.com/repos/ManageIQ/manageiq/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ManageIQ/manageiq/merges","archive_url":"https://api.github.com/repos/ManageIQ/manageiq/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ManageIQ/manageiq/downloads","issues_url":"https://api.github.com/repos/ManageIQ/manageiq/issues{/number}","pulls_url":"https://api.github.com/repos/ManageIQ/manageiq/pulls{/number}","milestones_url":"https://api.github.com/repos/ManageIQ/manageiq/milestones{/number}","notifications_url":"https://api.github.com/repos/ManageIQ/manageiq/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ManageIQ/manageiq/labels{/name}","releases_url":"https://api.github.com/repos/ManageIQ/manageiq/releases{/id}","deployments_url":"https://api.github.com/repos/ManageIQ/manageiq/deployments","created_at":"2014-06-13T02:31:26Z","updated_at":"2016-07-05T04:27:49Z","pushed_at":"2016-07-05T16:43:41Z","git_url":"git://github.com/ManageIQ/manageiq.git","ssh_url":"git@github.com:ManageIQ/manageiq.git","clone_url":"https://github.com/ManageIQ/manageiq.git","svn_url":"https://github.com/ManageIQ/manageiq","homepage":"manageiq.org","size":174643,"stargazers_count":290,"watchers_count":290,"language":"Ruby","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":318,"mirror_url":null,"open_issues_count":753,"forks":318,"open_issues":753,"watchers":290,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/ManageIQ/manageiq/pulls/9606"},"html":{"href":"https://github.com/ManageIQ/manageiq/pull/9606"},"issue":{"href":"https://api.github.com/repos/ManageIQ/manageiq/issues/9606"},"comments":{"href":"https://api.github.com/repos/ManageIQ/manageiq/issues/9606/comments"},"review_comments":{"href":"https://api.github.com/repos/ManageIQ/manageiq/pulls/9606/comments"},"review_comment":{"href":"https://api.github.com/repos/ManageIQ/manageiq/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/ManageIQ/manageiq/pulls/9606/commits"},"statuses":{"href":"https://api.github.com/repos/ManageIQ/manageiq/statuses/874a780a211073cbc98809daabc016b22057147c"}}}}
{"actor":{"display_login":"Fryguy"}}