diff --git a/generate-spec.php b/generate-spec.php index 754d1dc..f95eb12 100755 --- a/generate-spec.php +++ b/generate-spec.php @@ -824,6 +824,9 @@ if (!$queryParameter->type->nullable && !$queryParameter->type->hasDefaultValue) { $parameter['required'] = true; } + if ($queryParameter->type->deprecated) { + $parameter['deprecated'] = true; + } $parameter['schema'] = $queryParameter->type->toArray(true); $parameters[] = $parameter; diff --git a/src/ControllerMethod.php b/src/ControllerMethod.php index cdf4147..d429d00 100644 --- a/src/ControllerMethod.php +++ b/src/ControllerMethod.php @@ -230,6 +230,11 @@ public static function parse(string $context, continue; } + if (str_contains($param->type->description, '@deprecated')) { + $param->type->deprecated = true; + $param->type->description = str_replace('@deprecated', 'Deprecated:', $param->type->description); + } + $parameters[] = $param; } diff --git a/src/Helpers.php b/src/Helpers.php index a1adb17..87dc7c3 100644 --- a/src/Helpers.php +++ b/src/Helpers.php @@ -150,8 +150,13 @@ public static function cleanEmptyResponseArray(array $schema): array|stdClass { public static function classMethodHasAnnotationOrAttribute(ClassMethod|Class_|Node $node, string $annotation): bool { $doc = $node->getDocComment()?->getText(); - if ($doc !== null && str_contains($doc, '@' . $annotation)) { - return true; + + if ($doc !== null) { + if ($annotation !== 'deprecated' && str_contains($doc, '@' . $annotation)) { + return true; + } elseif ($annotation === 'deprecated' && str_contains($doc, '* @' . $annotation)) { + return true; + } } /** @var AttributeGroup $attrGroup */ diff --git a/src/OpenApiType.php b/src/OpenApiType.php index b1a3ff8..68b68e6 100644 --- a/src/OpenApiType.php +++ b/src/OpenApiType.php @@ -40,6 +40,7 @@ public function __construct( public ?string $format = null, public bool $nullable = false, public bool $hasDefaultValue = false, + public bool $deprecated = false, public mixed $defaultValue = null, public ?OpenApiType $items = null, public ?array $properties = null, @@ -98,6 +99,9 @@ enum: [0, 1], if ($this->nullable) { $values['nullable'] = true; } + if ($this->deprecated) { + $values['deprecated'] = true; + } if ($this->hasDefaultValue && $this->defaultValue !== null) { $values['default'] = $this->type === 'object' && empty($this->defaultValue) ? new stdClass() : $this->defaultValue; } diff --git a/tests/appinfo/routes.php b/tests/appinfo/routes.php index 8a39f96..13984da 100644 --- a/tests/appinfo/routes.php +++ b/tests/appinfo/routes.php @@ -77,5 +77,11 @@ ['name' => 'Settings#withCorsAnnotation', 'url' => '/api/{apiVersion}/cors/annotation', 'verb' => 'POST', 'requirements' => ['apiVersion' => '(v2)']], ['name' => 'Settings#withCorsAttribute', 'url' => '/api/{apiVersion}/cors/attribute', 'verb' => 'POST', 'requirements' => ['apiVersion' => '(v2)']], ['name' => 'Settings#docsParsingStatuscode', 'url' => '/api/{apiVersion}/docs-parsing-status-code', 'verb' => 'POST', 'requirements' => ['apiVersion' => '(v2)']], + ['name' => 'Settings#deprecatedRoute', 'url' => '/api/{apiVersion}/deprecated', 'verb' => 'POST', 'requirements' => ['apiVersion' => '(v2)']], + ['name' => 'Settings#deprecatedRouteGet', 'url' => '/api/{apiVersion}/deprecated-get', 'verb' => 'GET', 'requirements' => ['apiVersion' => '(v2)']], + ['name' => 'Settings#deprecatedParameter', 'url' => '/api/{apiVersion}/deprecated-parameter', 'verb' => 'POST', 'requirements' => ['apiVersion' => '(v2)']], + ['name' => 'Settings#deprecatedParameterGet', 'url' => '/api/{apiVersion}/deprecated-parameter-get', 'verb' => 'GET', 'requirements' => ['apiVersion' => '(v2)']], + ['name' => 'Settings#deprecatedRouteAndParameter', 'url' => '/api/{apiVersion}/deprecated-route-parameter', 'verb' => 'POST', 'requirements' => ['apiVersion' => '(v2)']], + ['name' => 'Settings#deprecatedRouteAndParameterGet', 'url' => '/api/{apiVersion}/deprecated-route-parameter-get', 'verb' => 'GET', 'requirements' => ['apiVersion' => '(v2)']], ], ]; diff --git a/tests/lib/Controller/SettingsController.php b/tests/lib/Controller/SettingsController.php index db4d73b..7e68448 100644 --- a/tests/lib/Controller/SettingsController.php +++ b/tests/lib/Controller/SettingsController.php @@ -635,4 +635,84 @@ public function withCorsAttribute(): DataResponse { public function docsParsingStatuscode(string $param): DataResponse { return new DataResponse(); } + + /** + * A deprecated POST route + * + * @param bool $active Not deprecated + * @return DataResponse, array{}> + * @deprecated 1.0.0 Use {@see SettingsController::trueFalseParameter()} instead + * + * 200: Admin settings updated + */ + public function deprecatedRoute(bool $active): DataResponse { + return new DataResponse(); + } + + /** + * A deprecated GET route + * + * @param bool $active Not deprecated + * @return DataResponse, array{}> + * @deprecated 1.0.0 Use {@see SettingsController::trueFalseParameter()} instead + * + * 200: Admin settings updated + */ + public function deprecatedRouteGet(bool $active): DataResponse { + return new DataResponse(); + } + + /** + * A deprecated parameter does not deprecate the POST method + * + * @param bool $active Not deprecated + * @param bool $deprecated boolean @deprecated This parameter will be removed in a future version + * @return DataResponse, array{}> + * + * 200: Admin settings updated + */ + public function deprecatedParameter(bool $active, bool $deprecated): DataResponse { + return new DataResponse(); + } + + /** + * A deprecated parameter does not deprecate the GET method + * + * @param bool $active Not deprecated + * @param bool $deprecated boolean @deprecated This parameter will be removed in a future version + * @return DataResponse, array{}> + * + * 200: Admin settings updated + */ + public function deprecatedParameterGet(bool $active, bool $deprecated): DataResponse { + return new DataResponse(); + } + + /** + * A deprecated parameter on a deprecated POST method + * + * @param bool $active Not deprecated + * @param bool $deprecated boolean @deprecated This parameter will be removed in a future version + * @return DataResponse, array{}> + * @deprecated 1.0.0 Use {@see SettingsController::trueFalseParameter()} instead + * + * 200: Admin settings updated + */ + public function deprecatedRouteAndParameter(bool $active, bool $deprecated): DataResponse { + return new DataResponse(); + } + + /** + * A deprecated parameter on a deprecated GET method + * + * @param bool $active Not deprecated + * @param bool $deprecated boolean @deprecated This parameter will be removed in a future version + * @return DataResponse, array{}> + * @deprecated 1.0.0 Use {@see SettingsController::trueFalseParameter()} instead + * + * 200: Admin settings updated + */ + public function deprecatedRouteAndParameterGet(bool $active, bool $deprecated): DataResponse { + return new DataResponse(); + } } diff --git a/tests/openapi-administration.json b/tests/openapi-administration.json index 8cfc83d..21fc144 100644 --- a/tests/openapi-administration.json +++ b/tests/openapi-administration.json @@ -4638,6 +4638,578 @@ } } }, + "/ocs/v2.php/apps/notifications/api/{apiVersion}/deprecated": { + "post": { + "operationId": "settings-deprecated-route", + "summary": "A deprecated POST route", + "description": "This endpoint requires admin access", + "deprecated": true, + "tags": [ + "settings" + ], + "security": [ + { + "bearer_auth": [] + }, + { + "basic_auth": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "active" + ], + "properties": { + "active": { + "type": "boolean", + "description": "Not deprecated" + } + } + } + } + } + }, + "parameters": [ + { + "name": "apiVersion", + "in": "path", + "required": true, + "schema": { + "type": "string", + "enum": [ + "v2" + ], + "default": "v2" + } + }, + { + "name": "OCS-APIRequest", + "in": "header", + "description": "Required to be true for the API request to pass", + "required": true, + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Admin settings updated", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "ocs" + ], + "properties": { + "ocs": { + "type": "object", + "required": [ + "meta", + "data" + ], + "properties": { + "meta": { + "$ref": "#/components/schemas/OCSMeta" + }, + "data": {} + } + } + } + } + } + } + } + } + } + }, + "/ocs/v2.php/apps/notifications/api/{apiVersion}/deprecated-get": { + "get": { + "operationId": "settings-deprecated-route-get", + "summary": "A deprecated GET route", + "description": "This endpoint requires admin access", + "deprecated": true, + "tags": [ + "settings" + ], + "security": [ + { + "bearer_auth": [] + }, + { + "basic_auth": [] + } + ], + "parameters": [ + { + "name": "apiVersion", + "in": "path", + "required": true, + "schema": { + "type": "string", + "enum": [ + "v2" + ], + "default": "v2" + } + }, + { + "name": "active", + "in": "query", + "description": "Not deprecated", + "required": true, + "schema": { + "type": "integer", + "enum": [ + 0, + 1 + ] + } + }, + { + "name": "OCS-APIRequest", + "in": "header", + "description": "Required to be true for the API request to pass", + "required": true, + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Admin settings updated", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "ocs" + ], + "properties": { + "ocs": { + "type": "object", + "required": [ + "meta", + "data" + ], + "properties": { + "meta": { + "$ref": "#/components/schemas/OCSMeta" + }, + "data": {} + } + } + } + } + } + } + } + } + } + }, + "/ocs/v2.php/apps/notifications/api/{apiVersion}/deprecated-parameter": { + "post": { + "operationId": "settings-deprecated-parameter", + "summary": "A deprecated parameter does not deprecate the POST method", + "description": "This endpoint requires admin access", + "tags": [ + "settings" + ], + "security": [ + { + "bearer_auth": [] + }, + { + "basic_auth": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "active", + "deprecated" + ], + "properties": { + "active": { + "type": "boolean", + "description": "Not deprecated" + }, + "deprecated": { + "type": "boolean", + "deprecated": true, + "description": "boolean Deprecated: This parameter will be removed in a future version" + } + } + } + } + } + }, + "parameters": [ + { + "name": "apiVersion", + "in": "path", + "required": true, + "schema": { + "type": "string", + "enum": [ + "v2" + ], + "default": "v2" + } + }, + { + "name": "OCS-APIRequest", + "in": "header", + "description": "Required to be true for the API request to pass", + "required": true, + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Admin settings updated", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "ocs" + ], + "properties": { + "ocs": { + "type": "object", + "required": [ + "meta", + "data" + ], + "properties": { + "meta": { + "$ref": "#/components/schemas/OCSMeta" + }, + "data": {} + } + } + } + } + } + } + } + } + } + }, + "/ocs/v2.php/apps/notifications/api/{apiVersion}/deprecated-parameter-get": { + "get": { + "operationId": "settings-deprecated-parameter-get", + "summary": "A deprecated parameter does not deprecate the GET method", + "description": "This endpoint requires admin access", + "tags": [ + "settings" + ], + "security": [ + { + "bearer_auth": [] + }, + { + "basic_auth": [] + } + ], + "parameters": [ + { + "name": "apiVersion", + "in": "path", + "required": true, + "schema": { + "type": "string", + "enum": [ + "v2" + ], + "default": "v2" + } + }, + { + "name": "active", + "in": "query", + "description": "Not deprecated", + "required": true, + "schema": { + "type": "integer", + "enum": [ + 0, + 1 + ] + } + }, + { + "name": "deprecated", + "in": "query", + "description": "boolean Deprecated: This parameter will be removed in a future version", + "required": true, + "deprecated": true, + "schema": { + "type": "integer", + "enum": [ + 0, + 1 + ] + } + }, + { + "name": "OCS-APIRequest", + "in": "header", + "description": "Required to be true for the API request to pass", + "required": true, + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Admin settings updated", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "ocs" + ], + "properties": { + "ocs": { + "type": "object", + "required": [ + "meta", + "data" + ], + "properties": { + "meta": { + "$ref": "#/components/schemas/OCSMeta" + }, + "data": {} + } + } + } + } + } + } + } + } + } + }, + "/ocs/v2.php/apps/notifications/api/{apiVersion}/deprecated-route-parameter": { + "post": { + "operationId": "settings-deprecated-route-and-parameter", + "summary": "A deprecated parameter on a deprecated POST method", + "description": "This endpoint requires admin access", + "deprecated": true, + "tags": [ + "settings" + ], + "security": [ + { + "bearer_auth": [] + }, + { + "basic_auth": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "active", + "deprecated" + ], + "properties": { + "active": { + "type": "boolean", + "description": "Not deprecated" + }, + "deprecated": { + "type": "boolean", + "deprecated": true, + "description": "boolean Deprecated: This parameter will be removed in a future version" + } + } + } + } + } + }, + "parameters": [ + { + "name": "apiVersion", + "in": "path", + "required": true, + "schema": { + "type": "string", + "enum": [ + "v2" + ], + "default": "v2" + } + }, + { + "name": "OCS-APIRequest", + "in": "header", + "description": "Required to be true for the API request to pass", + "required": true, + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Admin settings updated", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "ocs" + ], + "properties": { + "ocs": { + "type": "object", + "required": [ + "meta", + "data" + ], + "properties": { + "meta": { + "$ref": "#/components/schemas/OCSMeta" + }, + "data": {} + } + } + } + } + } + } + } + } + } + }, + "/ocs/v2.php/apps/notifications/api/{apiVersion}/deprecated-route-parameter-get": { + "get": { + "operationId": "settings-deprecated-route-and-parameter-get", + "summary": "A deprecated parameter on a deprecated GET method", + "description": "This endpoint requires admin access", + "deprecated": true, + "tags": [ + "settings" + ], + "security": [ + { + "bearer_auth": [] + }, + { + "basic_auth": [] + } + ], + "parameters": [ + { + "name": "apiVersion", + "in": "path", + "required": true, + "schema": { + "type": "string", + "enum": [ + "v2" + ], + "default": "v2" + } + }, + { + "name": "active", + "in": "query", + "description": "Not deprecated", + "required": true, + "schema": { + "type": "integer", + "enum": [ + 0, + 1 + ] + } + }, + { + "name": "deprecated", + "in": "query", + "description": "boolean Deprecated: This parameter will be removed in a future version", + "required": true, + "deprecated": true, + "schema": { + "type": "integer", + "enum": [ + 0, + 1 + ] + } + }, + { + "name": "OCS-APIRequest", + "in": "header", + "description": "Required to be true for the API request to pass", + "required": true, + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Admin settings updated", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "ocs" + ], + "properties": { + "ocs": { + "type": "object", + "required": [ + "meta", + "data" + ], + "properties": { + "meta": { + "$ref": "#/components/schemas/OCSMeta" + }, + "data": {} + } + } + } + } + } + } + } + } + } + }, "/ocs/v2.php/tests/attribute-ocs/{param}": { "get": { "operationId": "routing-attributeocs-route", diff --git a/tests/openapi-full.json b/tests/openapi-full.json index 8ca9f22..568cd04 100644 --- a/tests/openapi-full.json +++ b/tests/openapi-full.json @@ -4788,6 +4788,578 @@ } } }, + "/ocs/v2.php/apps/notifications/api/{apiVersion}/deprecated": { + "post": { + "operationId": "settings-deprecated-route", + "summary": "A deprecated POST route", + "description": "This endpoint requires admin access", + "deprecated": true, + "tags": [ + "settings" + ], + "security": [ + { + "bearer_auth": [] + }, + { + "basic_auth": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "active" + ], + "properties": { + "active": { + "type": "boolean", + "description": "Not deprecated" + } + } + } + } + } + }, + "parameters": [ + { + "name": "apiVersion", + "in": "path", + "required": true, + "schema": { + "type": "string", + "enum": [ + "v2" + ], + "default": "v2" + } + }, + { + "name": "OCS-APIRequest", + "in": "header", + "description": "Required to be true for the API request to pass", + "required": true, + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Admin settings updated", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "ocs" + ], + "properties": { + "ocs": { + "type": "object", + "required": [ + "meta", + "data" + ], + "properties": { + "meta": { + "$ref": "#/components/schemas/OCSMeta" + }, + "data": {} + } + } + } + } + } + } + } + } + } + }, + "/ocs/v2.php/apps/notifications/api/{apiVersion}/deprecated-get": { + "get": { + "operationId": "settings-deprecated-route-get", + "summary": "A deprecated GET route", + "description": "This endpoint requires admin access", + "deprecated": true, + "tags": [ + "settings" + ], + "security": [ + { + "bearer_auth": [] + }, + { + "basic_auth": [] + } + ], + "parameters": [ + { + "name": "apiVersion", + "in": "path", + "required": true, + "schema": { + "type": "string", + "enum": [ + "v2" + ], + "default": "v2" + } + }, + { + "name": "active", + "in": "query", + "description": "Not deprecated", + "required": true, + "schema": { + "type": "integer", + "enum": [ + 0, + 1 + ] + } + }, + { + "name": "OCS-APIRequest", + "in": "header", + "description": "Required to be true for the API request to pass", + "required": true, + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Admin settings updated", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "ocs" + ], + "properties": { + "ocs": { + "type": "object", + "required": [ + "meta", + "data" + ], + "properties": { + "meta": { + "$ref": "#/components/schemas/OCSMeta" + }, + "data": {} + } + } + } + } + } + } + } + } + } + }, + "/ocs/v2.php/apps/notifications/api/{apiVersion}/deprecated-parameter": { + "post": { + "operationId": "settings-deprecated-parameter", + "summary": "A deprecated parameter does not deprecate the POST method", + "description": "This endpoint requires admin access", + "tags": [ + "settings" + ], + "security": [ + { + "bearer_auth": [] + }, + { + "basic_auth": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "active", + "deprecated" + ], + "properties": { + "active": { + "type": "boolean", + "description": "Not deprecated" + }, + "deprecated": { + "type": "boolean", + "deprecated": true, + "description": "boolean Deprecated: This parameter will be removed in a future version" + } + } + } + } + } + }, + "parameters": [ + { + "name": "apiVersion", + "in": "path", + "required": true, + "schema": { + "type": "string", + "enum": [ + "v2" + ], + "default": "v2" + } + }, + { + "name": "OCS-APIRequest", + "in": "header", + "description": "Required to be true for the API request to pass", + "required": true, + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Admin settings updated", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "ocs" + ], + "properties": { + "ocs": { + "type": "object", + "required": [ + "meta", + "data" + ], + "properties": { + "meta": { + "$ref": "#/components/schemas/OCSMeta" + }, + "data": {} + } + } + } + } + } + } + } + } + } + }, + "/ocs/v2.php/apps/notifications/api/{apiVersion}/deprecated-parameter-get": { + "get": { + "operationId": "settings-deprecated-parameter-get", + "summary": "A deprecated parameter does not deprecate the GET method", + "description": "This endpoint requires admin access", + "tags": [ + "settings" + ], + "security": [ + { + "bearer_auth": [] + }, + { + "basic_auth": [] + } + ], + "parameters": [ + { + "name": "apiVersion", + "in": "path", + "required": true, + "schema": { + "type": "string", + "enum": [ + "v2" + ], + "default": "v2" + } + }, + { + "name": "active", + "in": "query", + "description": "Not deprecated", + "required": true, + "schema": { + "type": "integer", + "enum": [ + 0, + 1 + ] + } + }, + { + "name": "deprecated", + "in": "query", + "description": "boolean Deprecated: This parameter will be removed in a future version", + "required": true, + "deprecated": true, + "schema": { + "type": "integer", + "enum": [ + 0, + 1 + ] + } + }, + { + "name": "OCS-APIRequest", + "in": "header", + "description": "Required to be true for the API request to pass", + "required": true, + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Admin settings updated", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "ocs" + ], + "properties": { + "ocs": { + "type": "object", + "required": [ + "meta", + "data" + ], + "properties": { + "meta": { + "$ref": "#/components/schemas/OCSMeta" + }, + "data": {} + } + } + } + } + } + } + } + } + } + }, + "/ocs/v2.php/apps/notifications/api/{apiVersion}/deprecated-route-parameter": { + "post": { + "operationId": "settings-deprecated-route-and-parameter", + "summary": "A deprecated parameter on a deprecated POST method", + "description": "This endpoint requires admin access", + "deprecated": true, + "tags": [ + "settings" + ], + "security": [ + { + "bearer_auth": [] + }, + { + "basic_auth": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "active", + "deprecated" + ], + "properties": { + "active": { + "type": "boolean", + "description": "Not deprecated" + }, + "deprecated": { + "type": "boolean", + "deprecated": true, + "description": "boolean Deprecated: This parameter will be removed in a future version" + } + } + } + } + } + }, + "parameters": [ + { + "name": "apiVersion", + "in": "path", + "required": true, + "schema": { + "type": "string", + "enum": [ + "v2" + ], + "default": "v2" + } + }, + { + "name": "OCS-APIRequest", + "in": "header", + "description": "Required to be true for the API request to pass", + "required": true, + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Admin settings updated", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "ocs" + ], + "properties": { + "ocs": { + "type": "object", + "required": [ + "meta", + "data" + ], + "properties": { + "meta": { + "$ref": "#/components/schemas/OCSMeta" + }, + "data": {} + } + } + } + } + } + } + } + } + } + }, + "/ocs/v2.php/apps/notifications/api/{apiVersion}/deprecated-route-parameter-get": { + "get": { + "operationId": "settings-deprecated-route-and-parameter-get", + "summary": "A deprecated parameter on a deprecated GET method", + "description": "This endpoint requires admin access", + "deprecated": true, + "tags": [ + "settings" + ], + "security": [ + { + "bearer_auth": [] + }, + { + "basic_auth": [] + } + ], + "parameters": [ + { + "name": "apiVersion", + "in": "path", + "required": true, + "schema": { + "type": "string", + "enum": [ + "v2" + ], + "default": "v2" + } + }, + { + "name": "active", + "in": "query", + "description": "Not deprecated", + "required": true, + "schema": { + "type": "integer", + "enum": [ + 0, + 1 + ] + } + }, + { + "name": "deprecated", + "in": "query", + "description": "boolean Deprecated: This parameter will be removed in a future version", + "required": true, + "deprecated": true, + "schema": { + "type": "integer", + "enum": [ + 0, + 1 + ] + } + }, + { + "name": "OCS-APIRequest", + "in": "header", + "description": "Required to be true for the API request to pass", + "required": true, + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "Admin settings updated", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "ocs" + ], + "properties": { + "ocs": { + "type": "object", + "required": [ + "meta", + "data" + ], + "properties": { + "meta": { + "$ref": "#/components/schemas/OCSMeta" + }, + "data": {} + } + } + } + } + } + } + } + } + } + }, "/ocs/v2.php/tests/attribute-ocs/{param}": { "get": { "operationId": "routing-attributeocs-route",