Swagger schema readonly true example. ToString() instead of Type.
Swagger schema readonly true example Example model: Message: type: object required: - text properties: id: type: string readOnly: true text: type: string When I get Jul 1, 2021 · I'm using Swagger with OAS3, since I need anyOf support. Dec 4, 2020 · In general, you can add an @ApiModel annotation to the object that you will pass in the request. Nov 12, 2023 · I'm seeking for the same in NestJS. Feb 7, 2020 · Is there a way to represent a property as generally readOnly, but allow the property to be written during a POST or PUT (i. READ_ONLY) private int id; Let’s check the updated Swagger UI now: We can see that the id field is visible for the GET API now but remains hidden for the POST API – it supports Read-Only operations. g providing a completely different representation) the schema of an element; for example if a specific class is provided as value of implementation(), it will override the element type May 11, 2019 · The problem I'm having is that Swagger and Swashbuckle are completely ignoring those fields for rendering examples of parameter payloads. This way, you only have to change the serializer in the future keeping everything in one place. v3. Apr 7, 2021 · You can annotate read-only and write-only properties with SwaggerSchemaAttribute from the package Swashbuckle. This means that it MAY be sent as part of a response but MUST NOT be sent as part of the request. It is applicable e. api. Now let’s dig into annotations. Declares the property as "read only". Allows a model property to be designated as read only. Example from above link : Marks a given resource, class or bean type as hidden, skipping while reading / resolving. Probably, implementing some kind of decorator for that specific case. I started out creating a bug report there before realising that the implemented behaviour is a valid interpretation of the OpenAPI spec. Description. Properties marked as readOnly being true SHOULD NOT be in the required list of the defined schema. This allows correctly requiring the field on a GET and still using the same representation and schema with PUT. Aug 1, 2020 · The SwaggerSchema readOnly property doesn't look to work correctly with custom objects. READ_ONLY) public Long id; } Nov 24, 2018 · When I access example model on swagger page "id" filed is properly hidden in example json, and visible in response model. AdditionalPropertiesValue Schema object property has both 'writeOnly' and 'readOnly' set to 'true' Issue ID: v3-validation-schema-write-read-only. 0 specification defines a set of files required to describe an API. additionalPropertiesSchema Oct 4, 2023 · 今回は、筆者が4〜5年ほど現場で見てきたswaggerを元に、現場で必要になるswaggerの知識をまとめましたので、ぜひご覧になっていただけると嬉しいです! Feb 2, 2014 · Allows to specify the additionalProperties value AdditionalPropertiesValue. May 11, 2024 · By adding examples to models, we can automatically create example responses in every method which uses the model as an input or output. Models; using Swashbuckle. This is useful, for example, when GET returns more properties than used in POST – you can use the same schema in both GET and POST and mark the extra properties as readOnly. 0. io it displays everything in the 'Try it out' function. 0 schema: type: object properties: # Schema properties correspond to individual parts # of the multipart request document: # In 3. The schema works well in Swagger: it shows, and validates. READ_ONLY) private Age age; // The Allows to specify the access mode (AccessMode. readOnly properties are included in responses but not in requests, and writeOnly properties may be sent in requests paths: /document: post: summary: Api Summary description: Api Description requestBody: required: true content: multipart/form-data: # Form parameters from 2. 0 RC versions and nullable:true wasn't emitted at all for optional strings. Mvc. Oct 11, 2018 · @Schema(description = "Host IP and port to which to bind a container port") public class PortBindingDefinition implements Serializable { @Schema(description = "The host IP address", nullable = true, example = "127. I'm wondering whether it is possible to generate this kind of schema by swagger module means. Teachability, documentation, adoption, migration strategy. 0, files are binary Mar 3, 2023 · The old version uses several custom attributes on the model properties to control what is shown in the generated swagger OpenAPI 2. One or more properties in the schema you have defined has both writeOnly and readOnly properties set to true. The first question is: "can they be used in conjunction"? May 8, 2018 · Now available on Stack Overflow for Teams! AI features where you work: search, IDE, and chat. Schema. I can't think of a situation where this behaviour is what I would want. Parsed information about http request (swagger assumes http), input and output json schemas are passed to createResolver. Annotations. Apr 3, 2019 · Is there way to define enum list entry as read only? Now I have. But the example value shows only the first schema. May 12, 2023 · I was trying to model bind multiple sources to a single class and ignore some parameters with [SwaggerSchema(ReadOnly = true)]. NOTE 2 : The string type property Agg2_ServiceEndPoint is also only a getter yet it does not show up in the UI schema (as expected). additionalPropertiesSchema Nov 28, 2016 · readOnly. 0 documentation - including "Required" and "Readonly". Is that possible? Is that possible? At this moment, as a workaround I use [ReadOnly(true)] attribute on the DTO's fields but it's not a perfect solution. 01 nullable:true was emitted for optional strings. Oct 21, 2019 · I have a fairly complex object with nested objects; please note that in the example below I have simplified this object greatly. dynamic Tree: The dynamic values tree configuration. That, obviously, is wrong. OpenApi. Jan 15, 2020 · You can achieve the same using @ApiModelProperty(readOnly = true). I have an API call that can take one of 2 possible schemas, an account or an address. They haven't deviated too much from JSON Schema, but they leave some things out, add some things, and change some behaviors. To learn how to model various data types, see the following topics: Data Types; Enums; Dictionaries, Hashmaps, Associative Arrays; oneOf, anyOf, allOf, not; Inheritance and Polymorphism Jul 30, 2020 · It seems that Swagger only exposes the models that we expose in the controller layer. You switched accounts on another tab or window. It also doesn't help that the only concrete thing that the spec has to say about additionalProperties is: The following properties are taken from the JSON Schema definition but their definitions were adjusted to the Swagger Specification. additionalPropertiesSchema or @Schema. AccessMode. You can define a property to be either "write only" or "read only", but not both. collection. In the first, the variable readOnly is only set to true if the annotation has a true value, so it is impossible to use the annotation to set the desired value. As example here my entity: public class Brand : BaseEntity { public string Name { get; set; } [SwaggerSchema(ReadOnly = true)] public Guid LogoId { g The annotation may be used to define a Schema for a set of elements of the OpenAPI spec, and/or to define additional properties for the schema. additionalProperties – the value can be a boolean (true or false) or an OpenAPI schema. oas. example: The example value. annotations. The value of each array element within allOf, anyOf, or oneOf is a schema. This is useful, for example, when GET returns more properties than used in POST – you can use the same schema in both GET and POST and mark the extra properties as readOnly . Allows to specify the additionalProperties value AdditionalPropertiesValue. Asking for help, clarification, or responding to other answers. You can read more here @OA\Post — means POST request. ApiExplorer; using Microsoft. 5. However, it displays correctly in the Swagger Editor's preview: Swagger Editor preview is correct. default – the default value must conform to the specified schema. additionalPropertiesSchema May 9, 2020 · Swagger UI main page. Feb 2, 2012 · Allows to specify the additionalProperties value AdditionalPropertiesValue. Action import scala. Feb 7, 2020 · This will mark the id property as readOnly: true in the generated OpenAPI definition. AccessMode. Yet these properties are not marked as readOnly in the produced Swagger file (the readOnly key doesn't appear at all for them). The spec would look like: Oct 22, 2020 · The following is shown in Swagger UI NOTE 1 : I tried to decorate the property Agg2Id_Agg2Reference with and without [ReadOnly(true)] attribute yet still I see this property show up in Swagger UI. Fields that are both required and read-only are an example of when it is beneficial to ignore a readOnly: true constraint in a PUT, particularly if the value has not been changed. How can I setup Swagger so that it knows that "class" is readonly and to not include it in the UI for POST and PUT? Current ClassSection model: When creating schema, swagger-graphql-schema calls createResolver to obtain field resolver. Jun 6, 2020 · In the fruit class, the @Schema annotations serve the purpose of documenting and marking if the property is required, its pattern, as in the case of the date field, and setting it as readonly. Below is an example - id, category are optional fields, name is required. 10. . Default value is false. FALSE: set to FALSE AdditionalPropertiesValue. Request Body: { "operationL Feb 28, 2022 · Is setting the defined example in all instances of the address model even if I don't use the SwaggerRequestExample attribute annotated on my controller endpoint. example: 1 minimum: 1 readOnly: true status: type: string required: true description: Current status of the card. These types can be objects, but also primitives and arrays. Jan 8, 2024 · However, the readOnly property is now deprecated and replaced by accessMode property: Let’s examine it: @Schema(accessMode = AccessMode. additionalPropertiesSchema Nov 25, 2020 · Sharing my working approach for the issue, I have done a workaround for the @io. May 12, 2023 · Swashbuckle. Apply method: public void May 11, 2024 · The @Schema annotation allows us to control Swagger-specific definitions such as description, name, type, example values, and allowed values for the model properties. Dec 4, 2020 · //Add new Example to DB} @PutMapping("/example") public ObjectResponse postObject(@RequestBody Example example){//Update existing Example} My Example could look like this: public class Example{ @Id @Hidden private String id; private String somethingCool; } Apr 14, 2018 · I have this schema defined: User: type: object required: - id - username properties: id: type: integer format: int32 readOnly: true xml: attribute Mar 25, 2020 · The spec, as you linked defines the following for readOnly. it isn't obvious to me why the use of additionalProperties is the correct schema for a Map/Dictionary. Sep 11, 2020 · In my REST API PATCH operation, I am using v3 swagger-annotation:2. I then use NSwag to generate a C# API. } So the field 'data' will not be supplied in POST Request Body by the Client? And in case by mistake the Client sends the filed 'data' in the Request Body json what will happen? May 22, 2022 · I reviewed AnnotationsSchemaFilter in Swashbuckle. READ_ONLY: value will not be written to during a request but may be returned during a response. additionalPropertiesSchema The Schema Object allows the definition of input and output data types. But it seems wrong to me. BooleanField(default=True, write_only=True) class Meta: model = XYZ fields = ('id', 'status') When generating the swagger docs, field status still shows in the Response fields. Previously I had . Feb 28, 2020 · But also is confusing those attr are enable still inside body before. example: Jun 7, 2016 · package controllers import controllers. I'm likely somehow generating it incorrectly, so any help would be greatly appreciated! Allows to specify the access mode (AccessMode. I have here a working example with DotNetCore 3 and Swashbuckle 5. Jul 14, 2021 · Therefore in POST method I don't want them to be visible in model schema in swagger-UI but I would like them to be displayed in the response. ObjectId. Schema; public class ReadOnlyFields { @Schema(accessMode = Schema. The annotation may be used also to override partly (e. Dec 27, 2021 · @Schema(accessMode = Schema. Jun 18, 2022 · All you need to do is place the @swagger_auto_schema on the top. May 12, 2022 · import io. 0 Apr 25, 2019 · I have succesfully created ISchemaFilter to extend swagger. This annotation is used by swagger and open api. The Schema Object allows the definition of input and output data types. Missing schema when the Swagger Document saved in API Management Front End 0 Avoid additional fields in json apart from the fields defined in the swagger to fail the validation in WSO2 APIM 3. Rich Text Formatting. Here is my current SchemaFilter. models. About schemas # A schema is a data structure specified in a Swagger document Jun 18, 2019 · Say I have a schema that describes the value returned by an API call. Allows to specify the access mode (AccessMode. g. class XYZSerializer(serializers. Describe the solution you'd like. There are Allows to specify the additionalProperties value AdditionalPropertiesValue. ApiModelProperty; @ApiModelProperty(position = 30, required = true, value = "Group value") to. SwaggerGen; /// <summary> /// Makes sure readonly parameters are not considered while creating/updating/deleting an entity /// </summary> public class Allows to specify the access mode (AccessMode. Oct 9, 2019 · Until v4. This broke in the first 5. Apr 2, 2018 · The thing that I am thinking about is combinations of the anyOf, allOf, oneOf and not keywords. Metadata; using Microsoft. 1 uses a newer version of JSON Schema which supports multiple examples in schemas and properties. You signed in with another tab or window. 0 become body schema properties in 3. 0 Swashbuckle. For example, from the image corresponding to the getProduct() method, we can see that the response contains an example containing the same values we provided in our model. Is there a way to get swagger UI to generate an example for the 'interfaces' field based on the Interface schema? using Microsoft. AdditionalPropertiesValue Dec 14, 2018 · Stack Overflow for Teams Where developers & technologists share private knowledge with coworkers; Advertising & Talent Reach devs & technologists worldwide about your product, service or employer brand If your model contains generic types, consider using Type. The schema contains complex objects that have their own schema, for example: an object called 'interfaces'. This item model has 3 properties: id, description, and completed. For example, when generating the swagger docs when a model has both read/create operations, it uses the readonly attribute to "hide" the properties that are not Jul 11, 2018 · I've a serializer in which one of the fields is set to write_only=True. Apr 1, 2021 · Thanks for contributing an answer to Stack Overflow! Please be sure to answer the question. READ_ONLY, READ_WRITE) AccessMode. The Schema with its example value is changed now. This will mark the id property as readOnly: true in the generated OpenAPI definition. parameters. JavaConversions. readOnly properties are included in responses but not in requests, and writeOnly properties may be sent in requests but not in responses. Note that required is not an attribute of fields, but an attribute of the object itself - it's a list of required properties. SwaggerBaseApiController import io. AspNetCore. Example from here: import io. 0 Spec, This is an example of my User schema object. external Docs: The What Swagger uses is only inspired by JSON Schema. Mar 17, 2023 · @ApiModelProperty(readOnly = true) public String someField; This would make the field readonly, thus hidden in create/edit docs, but it would still be visible in the response body docs. AspNetCore 6. X @Hidden-- Hides a resource, an operation or a property. ModelSerializer): status = serializers. WRITE_ONLY: value will only be written to during a request but not returned during a response. Jan 25, 2024 · We use accessMode = Schema. class) the Schema is coming as String issue. Have read official docs of these libraries, but didn't find where to set an example value of field. READ_ONLY: value will only be written to during a request but not returned during a response. 0 data types are based on an extended subset JSON Schema Specification Wright Draft 00 (aka Draft 5). 1") @Nullable @JsonProperty("HostIp") private String hostIp; @Schema(description = "The host port number, as a string", example Jan 6, 2021 · Example Swagger/OpenAPI definition: id: type: integer example: 7 readOnly: true name: type: The first oneOf or anyOf schema will be used for example generation. When I debug and inspect the OpenAPISchema property corresponding to one of these model properties, its readOnly property is set to true, as expected. AdditionalPropertiesValue Allows to specify the additionalProperties value AdditionalPropertiesValue. TRUE: set to TRUE AdditionalPropertiesValue. I'm aware that swagger does not support the oneOf predicate, so I'm just trying to figure out how to describe this data structure in swagger. These files can then be used by the Swagger-UI project and Swagger-Codegen. Dec 13, 2023 · I want to generate an API reference doc with swagger. FullName to get rid of assembly information generated for generic parameter type and make your schema ids more consistent. 1. media. I'm hoping to make some of the fields optional somehow but I'm not sure how to define them. discriminator: The discriminator. dynamic Schema Old: The dynamic schema configuration. I tried: using readOnly = true; using accessMode = ApiModelProperty. Also, it offers additional filtering properties in case we want to hide the property in certain scenarios. RefProperty import io. No Sep 16, 2023 · You can use inheritance with a discriminator - the discriminator is a readonly field that tells you the type of your object in the hierarchy, which could be your "mode". Within an array schema, the value of items is a schema. 1 on https://editor. Reload to refresh your session. properties. I tried: using readOnly = true using hidden = true using accessMode = ApiModelProperty. Jan 26, 2024 · Schema generation rules # Lots of the work carried out by go-swagger is to generate models, which can have all kinds of rules like polymorphism and validations. public class Alert { [SwaggerSchema(ReadOnly = true)] public string AlertId { get; set Allows to specify the access mode (AccessMode. AdditionalPropertiesValue Allows to specify the access mode (AccessMode. additionalPropertiesSchema Allows to specify the additionalProperties value AdditionalPropertiesValue. 6 I was trying to add more examples as swagger schema for my patch operation PATCH /users/id. libraries: Flask-Restful, apispec, marshmallow (maybe also webargs) I am able to generate a swagger page with most of my requirements, but I don't know how to set an example for a field. ModelBinding. You can check in https://editor. environment parameters that are collected from HttpContext must not show as input parameters in Swagger UI. Aug 16, 2023 · The example does not include the field "id" of my DTO because it was previously annotated with @Schema(hidden=true). Schema; @Schema(position = 20, required = false) But I get not found for position and value. I created an examples array, per the documentation, but I have no idea where to add it: Allows to specify the access mode (AccessMode. You can use the readOnly and writeOnly keywords to mark specific properties as read-only or write-only. Learn more Explore Teams type: object description: Product properties: id: description: ID type: integer example: 1 name: description: Name type: string example: 'fresh baguette' active: description: Is active type: boolean example: true So I wanna override active example and when I do it like this: Jun 11, 2018 · In this model class, the example values for each property are already defined in @ApiModelProperty: @ApiModel(value = "MyAPIModel") public class MyAPIModel extends AbstractModel { @ApiModelProperty(required = true, example = "dan") private String name; @ApiModelProperty(required = true, example = "33") private String age; } Mar 30, 2016 · I'm attempting to define a swagger schema definition for an object that contains an array of objects of varying types. Some of the other models are larger so it can Aug 16, 2017 · So, there seems to be two places where the value of the property is looked up is considered, but in both places the value is ignored. Properties. additionalPropertiesSchema Mar 25, 2020 · For example: Within an object schema, the value of each properties/[propertyName] is a schema. Oct 9, 2024 · I've tried using SwaggerSchema and filters to set class as readonly, but it still appears when I try creating a new class section. io/ for testing the API and reproduces this. RequestBody(content = @Content(schema = @Schema(implementation = Map. Example Schema: POST request: Attributes with readOnly=true should be not editable and also not inside request POST. 1 server using Swashbuckle 5 with the newtonsoft json nuget, which produces an openapi 3 schema. a create or replace) action? In other words, when creating the resourc Sep 14, 2022 · OAS 3. OpenAPI 3. I thought that this is a common scenario. Of course none of this is possible without a set of rules and trade-offs. READ_ONLY) private String name; // This doesn't work. mvc. json enum property definitions for code generation purposes as described here. The form generated for POST operation does not mark the property as read-only and the user is able to change that The annotation may be used to define a Schema for a set of elements of the OpenAPI spec, and/or to define additional properties for the schema. You signed out in another tab or window. The schemas which must pass validation when this schema is used. auth. I will try to explain how to use them: @OA — means Open API annotation. This will allow you to generate OpenAPI spec with the readOnly and writeOnly keywords and also hide properties from Swagger UI. @ApiModelProperty(readOnly = true) Version 2. Remove(excludedName))I created another filter and use SwaggerSchemaAttribute in Swashbuckle. Technically, it should not. _ object Swagger extends Mar 1, 2021 · Name will only be visable in GET requests @ Schema (accessMode = Schema. The id property is an int64 value and is marked as readOnly, meaning that it will be provided by the API server and it will be ignored when the item is created. To help it display the parameters create a serializer for it. ) Jun 21, 2019 · When I access example model on swagger page "id" filed is properly hidden in example json, and visible in response model. Now moving from @ApiModelProperty to @Schema I was expecting that it would work in the same way @Schema(readOnly = true) public String someField; Allows to specify the access mode (AccessMode. import io. Where OpenAPI tooling renders rich text it MUST support, at a minimum, markdown syntax as described by CommonMark 0. to parameters, schema classes (aka "models"), properties of such models, request and response content, header. WRITE_ONLY doesn't work here as well @ Schema (accessMode = Schema. Jul 16, 2020 · I created a simple Swagger spec that has a model with one read-only header property (ex: readonly=true (example: sample)). READ_ONLY in the id property. The annotation may be used to define a Schema for a set of elements of the OpenAPI spec, and/or to define additional properties for the schema. I have two questions. Annotations 6. Here is the json schema for a template object (and all related object types). 27. {ApiKeyAuthDefinition, BasicAuthDefinition, In} import io. dynamic List New: The dynamic list. Oct 18, 2016 · By default, fields in a model are optional unless you put them in the required list. Jan 30, 2020 · You signed in with another tab or window. AdditionalPropertiesValue Feb 2, 2012 · Allows to specify the access mode (AccessMode. READ_ONLY, description = "Encrypted version of the data") public Map<String, Object> getData() { return data; } . The value of additionalProperties can be a schema (or a boolean value Jun 3, 2016 · My Swagger I am using swagger editor version 2. Throughout the specification description fields are noted as supporting CommonMark markdown formatting. The value of each /definitions/[name] is a schema. When I paste the full spec in https://editor. {Info, Response} import play. Annotations Dec 10, 2019 · LastUpdatedAt: type: object properties: last_updated_at: type: long readOnly: true example: 1574933675150 What I want to achieve is making my example look like this: I keep trying without success, this is as far as I've gotten: Nov 11, 2023 · According to docs, in NestJS it is possible to generate schemas like this: export class NodeId { @ApiProperty({ minimum: 40, maximum: 40, readOnly: true, }) id: string; } export Allows to specify the access mode (AccessMode. But "searchAnnouncement" is not hidden in example json. If "readOnly" has a value of boolean true, it indicates that the value of the instance is managed exclusively by the owning authority, and attempts by an application to modify the value of this property are expected to be ignored or rejected by that owning authority. To expose our internal models/DTOs, we need to configure additional models in the Docket bean in order to expose them. Jan 21, 2017 · Struggling with go-swagger and mongoDB: _id returned from mongoDB using mgo driver is of type bson. type: object description: | VISA card properties: id: type: integer description: Internal ID of the card. Unlike media type examples which is a map of named Example Objects, schema-level and property-level examples is a plain list of example values. May 23, 2022 · 2022/4/15現在この記法では、Swagger Viewerでは正常に表示されますが、ReDocを用いたHTMLではうまく表示されません(Response Samplesに配列番号0のものしか表示されません)。 Allows to specify the access mode (AccessMode. I can not find any places remove property from schema (schema. USE_ADDITIONAL_PROPERTIES_ANNOTATION: resolve from @Content. Go-swagger models are the go data structures used for serialization and validation. The annotation may be used to define a resource method as an OpenAPI Operation, and/or to define additional properties for the Operation. Do you know what is the proper way to replace them in springdoc? Allows to specify the access mode (AccessMode. dynamic Schema New: The dynamic schema configuration. It was annotated to be hidden because I don't want that field to be included in the JSON example provided by Swagger for the POST endpoint. Let’s add a few model properties to the User’s firstName field: The item schema must be an OpenAPI schema and not a standard JSON Schema. Provide details and share your research! But avoid …. e. net core 3. Age will be visable in GET and POST requests. This occurs whenever I generate code, through both the Swagger Editor and Swagger Codegen in python-flask. READ_ONLY Allows to specify the access mode (AccessMode. READ_ONLY Jul 1, 2021 · using Microsoft. Assume the following example object: public class Result { pub Dec 7, 2018 · I'm looking for some advice with my Open API 3. Learn more. SwaggerGen; /// <summary> /// Makes sure readonly parameters are not considered while creating/updating/deleting an entity /// </summary> public class Nov 12, 2018 · You can use @Hidden with Swagger Core 2. the name) or fully (e. The data types are described using a Schema object. One of the things Swagger leaves out is oneOf . I'm currently at a loss as to how to set the examples with out of the box swagger configuration correctly without creating an example for every instance that the model in question is used. E. Jun 17, 2020 · I recently upgraded my API to a . AdditionalPropertiesValue Jan 1, 2023 · In this model definition we say that the model item is an object with a required property description. io/ The editor works well, but when viewing the documents on the right hand side, there are some issues: I set a number of fields marked readOnly: true, accord Apr 2, 2014 · You can use the readOnly and writeOnly keywords to mark specific properties as read-only or write-only. AdditionalPropertiesValue The Swagger UI omits readOnly properties from the schema of requests, including callbacks. Net 7 Goal I was trying to model bind multiple sources to a single class and ignore some parameters with [SwaggerSchema(ReadOnly = true)]. properties – individual property definitions must follow OpenAPI schema rules and not standard JSON Schema. Jun 20, 2023 · This is useful, for example, when GET returns more properties than used in POST – you can use the same schema in both GET and POST and mark the extra properties as readOnly. Note: swagger-jaxrs2 reader engine includes by default also methods of scanned resources which are not annotated with @Operation, as long as a jax-rs @Path is defined at class and/or method level, together with the http method annotation (@GET, @POST, etc). swagger. ToString() instead of Type. This object is an extended subset of the JSON Schema Specification Wright Draft 00. (You can also annotate the object's properties, using the @ApiModelProperty annotation. 5. I looked at the swagger schema that was generated from our API and saw that all of the mentioned fields have readOnly: true. Sadly, there was no such example in NestJS docs. It will hide property from request and shows for a response only. lfcnmo svaimil waxarc wlgx vazoj mccqxd ojfwmkuj swoqhie ccmzos verhhs