do not munge hash keys in client-provided request. fixes #1516
[arvados.git] / services / api / app / controllers / arvados / v1 / schema_controller.rb
index 9da15d8282bebc43b13bb02b48bb93c5f9fbb1cb..35bf880d537e29afcbf4e29f17ab712201135a33 100644 (file)
@@ -234,11 +234,19 @@ class Arvados::V1::SchemaController < ApplicationController
               parameters: {
                 k.to_s.underscore => {
                   type: "object",
-                  required: true,
+                  required: false,
                   location: "query",
                   properties: object_properties
                 }
               },
+              request: {
+                required: false,
+                properties: {
+                  k.to_s => {
+                    "$ref" => k.to_s
+                  }
+                }
+              },
               response: {
                 "$ref" => k.to_s
               },
@@ -260,11 +268,19 @@ class Arvados::V1::SchemaController < ApplicationController
                 },
                 k.to_s.underscore => {
                   type: "object",
-                  required: true,
+                  required: false,
                   location: "query",
                   properties: object_properties
                 }
               },
+              request: {
+                required: false,
+                properties: {
+                  k.to_s => {
+                    "$ref" => k.to_s
+                  }
+                }
+              },
               response: {
                 "$ref" => k.to_s
               },
@@ -305,7 +321,7 @@ class Arvados::V1::SchemaController < ApplicationController
               ctl_class.action_methods.include? action
             method = {
               id: "arvados.#{k.to_s.underscore.pluralize}.#{action}",
-              path: route.path.sub('/arvados/v1/','').sub('(.:format)','').sub(/:(uu?)id/,'{uuid}'),
+              path: route.path.sub('/arvados/v1/','').sub('(.:format)','').sub(/:(uu)?id/,'{uuid}'),
               httpMethod: httpMethod,
               description: "#{route.defaults[:action]} #{k.to_s.underscore.pluralize}",
               parameters: {},