Îõ³h&0g$®       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ€ � ‚ ƒ „ … † ‡ ˆ ‰ Š ‹ Œ � Ž � � ‘ ’ “ ” • – — ˜ ™ š › œ � ž Ÿ   ¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬ ­ ® ¯ ° ± ² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿ À Á  à Ä Å Æ Ç È É Ê Ë Ì Í Î Ï Ð Ñ Ò Ó Ô Õ Ö × Ø Ù Ú Û Ü Ý Þ ß à á â ã ä å æ ç è é ê ë ì í î ï ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ € � ‚ ƒ „ … † ‡ ˆ ‰ Š ‹ Œ � Ž � � ‘ ’ “ ” • – — ˜ ™ š › œ � ž Ÿ   ¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬ ­ ® ¯ ° ± ² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿ À Á  à Ä Å Æ Ç È É Ê Ë Ì Í Î Ï Ð Ñ Ò Ó Ô Õ Ö × Ø Ù Ú Û Ü Ý Þ ß à á â ã ä å æ ç è é ê ë ì í î ï ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ € � ‚ ƒ „ … † ‡ ˆ ‰ Š ‹ Œ � Ž � � ‘ ’ “ ” • – — ˜ ™ š › œ � ž Ÿ   ¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬ ­ ® ¯ ° ± ² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿ À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï Ð Ñ Ò Ó Ô Õ Ö × Ø Ù Ú Û Ü Ý Þ ß à á â ã ä å æ ç è é ê ë ì í î ï ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ € � ‚ ƒ „ … † ‡ ˆ ‰ Š ‹ Œ � Ž � � ‘ ’ “ ” • – — ˜ ™ š › œ � ž Ÿ   ¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬ ­ ® ¯ ° ± ² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿ À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï Ð Ñ Ò Ó Ô Õ Ö × Ø Ù Ú Û Ü Ý Þ ß à á â ã ä å æ ç è é ê ë ì í î ï ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ € � ‚ ƒ „ … † ‡ ˆ ‰ Š ‹ Œ � Ž � � ‘ ’ “ ” • – — ˜ ™ š › œ � ž Ÿ   ¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬ ­  Safe-Inferred!   )Nickolay Kudasov  experimental Safe-Inferred8ÁÃÄÅÇ)Ö openapi3 A declare monad parametrized by d+ ”@ the output to accumulate (declarations).ÎThis monad is similar to both state and writer monads. Thus it can be seen as4a restricted append-only version of a state monad orÂa writer monad with the extra ability to read all previous output. openapi3Definitions of declare and look! must satisfy the following laws: monoid homomorphism (mempty)  mempty == return ()monoid homomorphism (mappend)  x >>   y ==   (x <> y) for every x, ydeclare-look  x >>   == ®  (<> x)   <*   x for every xlook as left identity  >> m == m for every m openapi3  x' is an action that produces the output x. openapi3 1 is an action that returns all the output so far.openapi3,A declare monad transformer parametrized by:d+ ”@ the output to accumulate (declarations);m ”@ the inner monad.æThis monad transformer is similar to both state and writer monad transformers. Thus it can be seen asÀa restricted append-only version of a state monad transformer orÎa writer monad transformer with the extra ability to read all previous output.openapi31Lift a computation from the simple Declare monad.openapi3-Retrieve a function of all the output so far.openapi3 Evaluate  d m a# computation, ignoring new output d.openapi3Execute DeclateT d m a= computation, ignoring result and only producing new output d.openapi3 Evaluate  d m a2 computation, starting with empty output history.openapi3Run   d a! computation with output history d, producing result a and new output d.openapi3 Evaluate   d a computation, ignoring output d.openapi3Execute Declate d a9 computation, ignoring result and only producing output d.openapi3 Evaluate  d m a2 computation, starting with empty output history.    Safe-Inferred )*1ÂÜ+j4openapi3*Generic serialisation for swagger records.Features:omits nulls, empty objects and empty arrays (configurable)possible to add fieldspossible to merge sub-object5openapi3ÂTODO:* This is only used by ToJSON (ParamSchema SwaggerKindSchema)Also uses default 0+openapi3prefix*+,-./01234567,-4756./0*+213 Safe-Inferred/1ÌÙÚ-$>openapi3Infer a C( for a generic representation of a type.Aopenapi3 A combined shape for a sum type.Bopenapi3$A combined shape for a product type.Copenapi3Shape of a datatype.Dopenapi3A simple enumeration.Eopenapi3(A product or a sum of non-unit products.Fopenapi38Mixed sum type with both unit and non-unit constructors. >?@ABCFED CFEDBA@?> Safe-Inferred "<ÁÂÃ×ÙÚÜ-lGIHJKLMNOPQRSTMNOPQRSJKLGIHT Safe-Inferred"%&)*15689:;ÁÂÃÌÑÚÜ‘~�lopenapi3¯A simple object to allow referencing other definitions in the specification. It can be used to reference parameters and responses that are defined at the top level for reuse.oopenapi3ÃAllows referencing an external resource for extended documentation.qopenapi32A short description of the target documentation.  https://spec.commonmark.org/CommonMark syntax* MAY be used for rich text representation.ropenapi3%The URL for the target documentation.sopenapi38Allows adding meta data to a single tag that is used by  Operation!. It is not mandatory to have a Tag per tag used there.uopenapi3The name of the tag.vopenapi3"A short description for the tag.  https://spec.commonmark.org/CommonMark syntax* MAY be used for rich text representation.wopenapi3/Additional external documentation for this tag.xopenapi3 Tag name.yopenapi3ËLists the required security schemes to execute this operation. The object can have multiple security schemes declared in it which are all required (that is, there is a logical AND between the schemes).€openapi3 The type of the security scheme.�openapi3(A short description for security scheme.‚openapi3ËBSL.putStrLn $ encodePretty (SecuritySchemeHttp (HttpSchemeBearer Nothing)){ "scheme": "bearer", "type": "http"}ÐBSL.putStrLn $ encodePretty (SecuritySchemeHttp (HttpSchemeBearer (Just "jwt"))){ "bearerFormat": "jwt", "scheme": "bearer", "type": "http"}ÀBSL.putStrLn $ encodePretty (SecuritySchemeHttp HttpSchemeBasic){ "scheme": "basic", "type": "http"}ÌBSL.putStrLn $ encodePretty (SecuritySchemeHttp (HttpSchemeCustom "CANARY")){ "scheme": "CANARY", "type": "http"}ÓBSL.putStrLn $ encodePretty (SecuritySchemeApiKey (ApiKeyParams "id" ApiKeyCookie)){ "in": "cookie", "name": "id", "type": "apiKey"}Žopenapi3)Configuration for the OAuth Implicit flow�openapi38Configuration for the OAuth Resource Owner Password flow�openapi33Configuration for the OAuth Client Credentials flow‘openapi33Configuration for the OAuth Authorization Code flow•openapi30The URL to be used for obtaining refresh tokens.–openapi3‰The available scopes for the OAuth2 security scheme. A map between the scope name and a short description for it. The map MAY be empty.¤openapi3ÎThe token URL to be used for OAuth2 flow. This SHOULD be in the form of a URL.¥openapi3ÖThe authorization URL to be used for OAuth2 flow. This SHOULD be in the form of a URL.¨openapi35The name of the header or query parameter to be used.©openapi3The location of the API key.ªopenapi3The location of the API key.®openapi3+Header fields have the same meaning as for ž.Style is always treated as º., as it is the only value allowed for headers.°openapi3"A short description of the header.¹openapi3åA map of possible out-of band callbacks related to the parent operation. Each value in the map is a ׆ Object that describes a set of requests that may be initiated by the API provider and the expected responses. The key value used to identify the path item object is an expression, evaluated at runtime, that identifies a URL to use for the callback operation.»openapi32Describes a single response from an API Operation.½openapi3&A short description of the response.  https://spec.commonmark.org/CommonMark syntax* can be used for rich text representation.¾openapi3àA map containing descriptions of potential response payloads. The key is a media type or media type range and the value describes it. For responses that match multiple keys, only the most specific key is applicable. e.g.  text/plain overrides text/*.¿openapi3%Maps a header name to its definition.Àopenapi3§A map of operations links that can be followed from the response. The key of the map is a short name for the link, following the naming constraints of the names for  Component Objects.Âopenapi3ôA container for the expected responses of an operation. The container maps a HTTP response code to the expected response. It is not expected from the documentation to necessarily cover all possible HTTP response codes, since they may not be known in advance. However, it is expected from the documentation to cover a successful operation response and any known errors.Äopenapi3ŒThe documentation of responses other than the ones declared for specific HTTP response codes. It can be used to cover undeclared responses.Åopenapi3˜Any HTTP status code can be used as the property name (one property per HTTP status code). Describes the expected response for those HTTP status codes.Èopenapi3ìReplaces the name of the element/attribute used for the described schema property. When defined within the Šû (items), it will affect the name of the individual XML elements within the list. When defined alongside type being array (outside the items), it will affect the wrapping element and only if wrapped is true. If wrapped is false, it will be ignored.Éopenapi3ËThe URL of the namespace definition. Value SHOULD be in the form of a URL.Êopenapi3#The prefix to be used for the name.Ëopenapi3íDeclares whether the property definition translates to an attribute instead of an element. Default value is False.Ìopenapi3áMAY be used only for an array definition. Signifies whether the array is wrapped (for example,  ) or unwrapped (). Default value is Falseà. The definition takes effect only when defined alongside type being array (outside the items).Íopenapi3A Ö= with an optional name. This name can be used in references.Óopenapi3ÏThe name of the property in the payload that will hold the discriminator value.Ôopenapi3ÑAn object to hold mappings between payload values and schema names or references.Õopenapi3Regex pattern for string type.ëopenapi3áDeclares the value of the parameter that the server will use if none is provided, for example a "count"< to control the number of results per page might default to 100¾ if not supplied by the client in the request. (Note: "default" has no meaning for required parameters.) Unlike JSON Schema this value MUST conform to the defined type for this parameter.þopenapi3:Parameters that are appended to the URL. For example, in  /items?id=###, the query parameter is id.ÿopenapi38Custom headers that are expected as part of the request.€openapi3±Used together with Path Templating, where the parameter value is actually part of the operation's URL. This does not include the host or base path of the API. For example, in items{itemId}, the path parameter is itemId.�openapi30Used to pass a specific cookie value to the API.Šopenapi3 Items for ‡ schemas.Warningü: OpenAPI 3.0 does not support tuple arrays. However, OpenAPI 3.1 will, as it will incorporate Json Schema mostly verbatim.‹, should be used to specify homogenous array Ös.Œ! should be used to specify tuple Ös.�openapi3ŠThe Link object represents a possible design-time link for a response. The presence of a link does not guarantee the caller's ability to successfully invoke it, rather it provides a known relationship and traversal mechanism between responses and other operations.�openapi3ãA relative or absolute URI reference to an OAS operation. This field is mutually exclusive of the � field, and MUST point to an É Object. Relative �+ values MAY be used to locate an existing É" Object in the OpenAPI definition.�openapi3The name of an existing6, resolvable OAS operation, as defined with a unique Ï*. This field is mutually exclusive of the � field.‘openapi3ÈA map representing parameters to pass to an operation as specified with � or identified via �Ø. The key is the parameter name to be used, whereas the value can be a constant or an expression to be evaluated and passed to the linked operation. The parameter name can be qualified using the parameter location  [{in}.]{name}Ø for operations that use the same parameter name in different locations (e.g. path.id).’openapi3A literal value or  {expression}< to use as a request body when calling the target operation.“openapi3A description of the link.”openapi33A server object to be used by the target operation.šopenapi3"Short description for the example.›openapi3ÞLong description for the example. CommonMark syntax MAY be used for rich text representation.œopenapi3Embedded literal example. The œ field and � field are mutually exclusive.�To represent examples of media types that cannot naturally represented in JSON or YAML, use a string value to contain the example, escaping where necessary.�openapi3�A URL that points to the literal example. This provides the capability to reference examples that cannot easily be included in JSON or YAML documents. The œ field and � field are mutually exclusive.žopenapi3ïDescribes a single operation parameter. A unique parameter is defined by a combination of a name and location. openapi3?The name of the parameter. Parameter names are case sensitive.¡openapi3‡A brief description of the parameter. This could contain examples of use. CommonMark syntax MAY be used for rich text representation.¢openapi3ÈDetermines whether this parameter is mandatory. If the parameter is in "path", this property is required and its value MUST be true. Otherwise, the property MAY be included and its default value is False.£openapi3äSpecifies that a parameter is deprecated and SHOULD be transitioned out of usage. Default value is false.¤openapi3The location of the parameter.¥openapi3ÊSets the ability to pass empty-valued parameters. This is valid only for þÒ parameters and allows sending a parameter with an empty value. Default value is false.¦openapi3ØDetermines whether the parameter value SHOULD allow reserved characters, as defined by  /https://tools.ietf.org/html/rfc3986#section-2.2RFC3986 :/?#[]è!$&'()*+,;=@ to be included without percent-encoding. This property only applies to parameters with an ¤ value of þ. The default value is ¯ .§openapi3Parameter schema.¨openapi3†Describes how the parameter value will be serialized depending on the type of the parameter value. Default values (based on value of ¤): for þ - ¹; for € - º; for ÿ - º; for � - ¹.©openapi3,When this is true, parameter values of type array or object¤ generate separate parameters for each value of the array or key-value pair of the map. For other types of parameters this property has no effect. When style is formÎ, the default value is true. For all other styles, the default value is false.ªopenapi3„Example of the parameter's potential value. The example SHOULD match the specified schema and encoding properties if present. The ª$ field is mutually exclusive of the «° field. Furthermore, if referencing a schema that contains an example, the example value SHALL override the example provided by the schema. To represent examples of media types that cannot naturally be represented in JSON or YAML, a string value can contain the example with escaping where necessary.«openapi3•Examples of the parameter's potential value. Each example SHOULD contain a value in the correct format as specified in the parameter encoding. The «$ field is mutually exclusive of the ªŽ field. Furthermore, if referencing a schema that contains an example, the examples value SHALL override the example provided by the schema.±openapi3äThe Content-Type for encoding a specific property. Default value depends on the property type: for string with format being binary “@ application/octet-stream; for other primitive types “@  text/plain; for object - application/jsoní; for array “@ the default is defined based on the inner type. The value can be a specific media type (e.g. application/json ), a wildcard media type (e.g. image/*.), or a comma-separated list of the two types.²openapi3ÎA map allowing additional information to be provided as headers, for example Content-Disposition.  Content-Typeˆ is described separately and SHALL be ignored in this section. This property SHALL be ignored if the request body media type is not a  multipart.³openapi3×Describes how a specific property value will be serialized depending on its type. See žÇ Object for details on the style property. The behavior follows the same values as query parameters, including default values. This property SHALL be ignored if the request body media type is not !application/x-www-form-urlencoded.´openapi3+When this is true, property values of type array or objectÁ generate separate parameters for each value of the array, or key-value-pair of the map. For other types of properties this property has no effect. When style is form, the default value is true.. For all other styles, the default value is falseÈ. This property SHALL be ignored if the request body media type is not !application/x-www-form-urlencoded.µopenapi3ØDetermines whether the parameter value SHOULD allow reserved characters, as defined by  /https://tools.ietf.org/html/rfc3986#section-2.2RFC3986 :/?#[] !$&'()*+,;=À to be included without percent-encoding. The default value is falseÈ. This property SHALL be ignored if the request body media type is not #application/x-www-form-urlencoded@.¶openapi3äIn order to support common ways of serializing simple parameters, a set of style values are defined.·openapi3!Path-style parameters defined by  1https://tools.ietf.org/html/rfc6570#section-3.2.7RFC6570.¸openapi3"Label style parameters defined by  1https://tools.ietf.org/html/rfc6570#section-3.2.7RFC6570.¹openapi3!Form style parameters defined by  1https://tools.ietf.org/html/rfc6570#section-3.2.7RFC6570. This option replaces collectionFormat with a csv (when explode is false) or multi0 (when explode is true) value from OpenAPI 2.0.ºopenapi3#Simple style parameters defined by  1https://tools.ietf.org/html/rfc6570#section-3.2.7RFC6570. This option replaces collectionFormat with a csv value from OpenAPI 2.0.»openapi34Space separated array values. This option replaces collectionFormat equal to ssv from OpenAPI 2.0.¼openapi33Pipe separated array values. This option replaces collectionFormat equal to pipes from OpenAPI 2.0.½openapi3ÈProvides a simple way of rendering nested objects using form parameters.¾openapi3ÝEach Media Type Object provides schema and examples for the media type identified by its key.Áopenapi3îExample of the media type. The example object SHOULD be in the correct format as specified by the media type.Âopenapi3íExamples of the media type. Each example object SHOULD match the media type and specified schema if present.Ãopenapi3°A map between a property name and its encoding information. The key, being the property name, MUST exist in the schema as a property. The encoding object SHALL only apply to Ä! objects when the media type is  multipart or !application/x-www-form-urlencoded.Äopenapi3 Describes a single request body.Æopenapi3ÎA brief description of the request body. This could contain examples of use.  https://spec.commonmark.org/CommonMark syntax* MAY be used for rich text representation.Çopenapi3ÂThe content of the request body. The key is a media type or media type range and the value describes it. For requests that match multiple keys, only the most specific key is applicable. e.g.  text/plain overrides text/*Èopenapi3ÈDetermines if the request body is required in the request. Defaults to ¯ .Éopenapi3+Describes a single API operation on a path.Ëopenapi3‡A list of tags for API documentation control. Tags can be used for logical grouping of operations by resources or any other qualifier.Ìopenapi3†A short summary of what the operation does. For maximum readability in the swagger-ui, this field SHOULD be less than 120 characters.Íopenapi32A verbose explanation of the operation behavior.  https://spec.commonmark.org/CommonMark syntax* can be used for rich text representation.Îopenapi35Additional external documentation for this operation.Ïopenapi3¼Unique string used to identify the operation. The id MUST be unique among all operations described in the API. The operationId value is **case-sensitive**. Tools and libraries MAY use the operationId to uniquely identify an operation, therefore, it is RECOMMENDED to follow common programming naming conventions.Ðopenapi3çA list of parameters that are applicable for this operation. If a parameter is already defined at the ׺, the new definition will override it, but can never remove it. The list MUST NOT include duplicated parameters. A unique parameter is defined by a combination of a name and location.Ñopenapi3…The request body applicable for this operation. The requestBody is only supported in HTTP methods where the HTTP 1.1 specification  1https://tools.ietf.org/html/rfc7231#section-4.3.1RFC7231� has explicitly defined semantics for request bodies. In other cases where the HTTP spec is vague, requestBody SHALL be ignored by consumers.Òopenapi3ÒThe list of possible responses as they are returned from executing this operation.Óopenapi3ñA map of possible out-of band callbacks related to the parent operation. The key is a unique identifier for the ¹% Object. Each value in the map is a ¹ç Object that describes a request that may be initiated by the API provider and the expected responses.Ôopenapi3òDeclares this operation to be deprecated. Usage of the declared operation should be refrained. Default value is False.Õopenapi3ÂA declaration of which security schemes are applied for this operation. The list of values describes alternative security schemes that can be used (that is, there is a logical OR between the security requirements). This definition overrides any declared top-level security. To remove a top-level security declaration, Just [] can be used.Öopenapi3ìAn alternative server array to service this operation. If an alternative server object is specified at the ×< Object or Root level, it will be overridden by this value.×openapi38Describes the operations available on a single path. A ׫ may be empty, due to ACL constraints. The path itself is still exposed to the documentation viewer but they will not know which operations and parameters are available.Ùopenapi3ÎAn optional, string summary, intended to apply to all operations in this path.Úopenapi3ÔAn optional, string description, intended to apply to all operations in this path.  https://spec.commonmark.org/CommonMark syntax* MAY be used for rich text representation.Ûopenapi3-A definition of a GET operation on this path.Üopenapi3-A definition of a PUT operation on this path.Ýopenapi3.A definition of a POST operation on this path.Þopenapi30A definition of a DELETE operation on this path.ßopenapi31A definition of a OPTIONS operation on this path.àopenapi3.A definition of a HEAD operation on this path.áopenapi3/A definition of a PATCH operation on this path.âopenapi3/A definition of a TRACE operation on this path.ãopenapi3ÃAn alternative server array to service all operations in this path.äopenapi3­A list of parameters that are applicable for all the operations described under this path. These parameters can be overridden at the operation level, but cannot be removed there. The list MUST NOT include duplicated parameters. A unique parameter is defined by a combination of a name and location.åopenapi3èHolds a set of reusable objects for different aspects of the OAS. All objects defined within the components object will have no effect on the API unless they are explicitly referenced from properties outside the components object.òopenapi3þAn enumeration of string values to be used if the substitution options are from a limited set. The array SHOULD NOT be empty.óopenapi3ýThe default value to use for substitution, which SHALL be sent if an alternate value is not supplied. Note this behavior is different than the 'Schema Object's treatment of default values, because in those cases parameter values are optional. If the ò9 is defined, the value SHOULD exist in the enum's values.ôopenapi32An optional description for the server variable.  https://spec.commonmark.org/CommonMark syntax* MAY be used for rich text representation.õopenapi3 An object representing a Server.÷openapi3€A URL to the target host. This URL supports Server Variables and MAY be relative, to indicate that the host location is relative to the location where the OpenAPI document is being served. Variable substitutions will be made when a variable is named in  {brackets}.øopenapi3?An optional string describing the host designated by the URL.  https://spec.commonmark.org/CommonMark syntax* MAY be used for rich text representation.ùopenapi3îA map between a variable name and its value. The value is used for substitution in the server's URL template.úopenapi3(License information for the exposed API.üopenapi3"The license name used for the API.ýopenapi3&A URL to the license used for the API.þopenapi3(Contact information for the exposed API.€openapi38The identifying name of the contact person/organization.�openapi3,The URL pointing to the contact information.‚openapi35The email address of the contact person/organization.ƒopenapi3³The object provides metadata about the API. The metadata MAY be used by the clients if needed, and MAY be presented in editing or documentation generation tools for convenience.…openapi3The title of the API.†openapi3!A short description of the API.  https://spec.commonmark.org/CommonMark syntax* MAY be used for rich text representation.‡openapi3ÊA URL to the Terms of Service for the API. MUST be in the format of a URL.ˆopenapi3,The contact information for the exposed API.‰openapi3,The license information for the exposed API.Šopenapi3‚The version of the OpenAPI document (which is distinct from the OpenAPI Specification version or the API implementation version).‹openapi3;This is the root document object for the API specification.�openapi3ÔProvides metadata about the API. The metadata can be used by the clients if needed.Žopenapi3µAn array of Server Objects, which provide connectivity information to a target server. If the servers property is not provided, or is an empty array, the default value would be a õ object with a url value of /.�openapi3/The available paths and operations for the API.�openapi39An element to hold various schemas for the specification.‘openapi3†A declaration of which security mechanisms can be used across the API. The list of values includes alternative security requirement objects that can be used. Only one of the security requirement objects need to be satisfied to authorize a request. Individual operations can override this definition. To make security optional, an empty security requirement can be included in the array.’openapi3¹A list of tags used by the specification with additional metadata. The order of the tags can be used to reflect on their order by the parsing tools. Not all tags that are used by the Éœ Object must be declared. The tags that are not declared MAY be organized randomly or based on the tools' logic. Each tag name in the list MUST be unique.“openapi3"Additional external documentation.”openapi3:The spec of OpenApi this spec adheres to. Must be between – and —•openapi35A list of definitions that can be used in references.–openapi3ÏThis is the lower version of the OpenApi Spec this library can parse or produce—openapi3ÏThis is the upper version of the OpenApi Spec this library can parse or produce»openapi3%All strings are parsed as expressionsùopenapi3:As for nullary schema for 0-arity type constructors, see  0https://github.com/GetShopTV/swagger2/issues/167.2BSL.putStrLn $ encodePretty (OpenApiItemsArray []){ "example": [], "items": {}, "maxItems": 0}¾`bacedfhgijklnmorqpswvutxy{z|}~�€‚†…„ƒ‡Š‰ˆ‹Œ‘��Ž�’–•”“—š™˜›�œž Ÿ¡£¢¤¥¦©¨§ª­¬«®·¶µ´³²±°¯¸¹º»À¿¾½¼ÁÂÅÄÃÆÌËÊÉÈÇÍÐÏÎÑÔÓÒÕÖúùø÷öõôóòñðïîíìëêéèçæåäãâáàßÞÝÜÛÚÙØ×ûüý�€ÿþ‚‰ˆ‡†…„ƒŠŒ‹�”“’‘��Ž•–—˜�œ›š™ž«ª©¨§¦¥¤£¢¡ Ÿ¬®­¯µ´³²±°¶½¼»º¹¸·¾ÃÂÁÀ¿ÄÈÇÆÅÉÖÕÔÓÒÑÐÏÎÍÌËÊ×äãâáàßÞÝÜÛÚÙØåïîíìëêéèçæðôóòñõùø÷öúýüûþ‚�€ÿƒŠ‰ˆ‡†…„‹”“’‘��Ž�Œ•–—˜™š›”•¾•‹”“’‘��Ž�Œ–—ƒŠ‰ˆ‡†…„þ‚�€ÿúýüûõùø÷öðôóòñåïîíìëêéèçæ×äãâáàßÞÝÜÛÚÙØÉÖÕÔÓÒÑÐÏÎÍÌËʘ™ÄÈÇÆÅ¾ÃÂÁÀ¿¶½¼»º¹¸·¯µ´³²±°¬®­š›ž«ª©¨§¦¥¤£¢¡ Ÿ˜�œ›š™•–—�”“’‘��ŽŠŒ‹‚‰ˆ‡†…„ƒý�€ÿþüûÖúùø÷öõôóòñðïîíìëêéèçæåäãâáàßÞÝÜÛÚÙØ×ÕÑÔÓÒÍÐÏÎÆÌËÊÉÈÇÂÅÄÃÁ»À¿¾½¼¹º¸®·¶µ´³²±°¯ª­¬«¦©¨§¥¤¡£¢ž Ÿ›�œ—š™˜’–•”“Œ‘��Ž�‹‡Š‰ˆ‚†…„ƒ~�€|}y{zxswvutorqplnmijkfhgced`ba”•)Nickolay Kudasov  experimental Safe-Inferred)*1ÁÂÃÄÅÇÌ×ÚÜ–±Æàáâãäåæçèéêëìíîïøùúûüýþÿ€�‚ƒ„…†‡ˆ‰“”•–—˜œ�žŸ£¤¥¦§¨­®¯°±²³´µ¶½¾¿ÀÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×çèéêëìùúûüýþÿ€�‚—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐö÷øùúûüý‹ Œ Ž � ” • – — ˜ ™ š › ¢ £ © ª « ¬ ± ² ³ ´ · ¸ ¹ º Á Â Ã Ä Å Æ Ç È Æîïìíêëèéæçäåâãàሉ†‡„…‚ƒ€�þÿüýúûøù—˜•–“”žŸœ�§¨¥¦£¤µ¶³´±²¯°­®¿À½¾Ö×ÔÕÒÓÐÑÎÏÌÍÊËÈÉÆÇëìéêçè�‚ÿ€ýþûüùúÏÐÍÎËÌÉÊÇÈÅÆÃÄÁ¿À½¾»¼¹º·¸µ¶³´±²¯°­®«¬©ª§¨¥¦£¤¡¢Ÿ �ž›œ™š—˜üýúûøùö÷‹ Œ Ž � š › ˜ ™ – — ” • ¢ £ « ¬ © ª ³ ´ ± ² ¹ º · ¸ Ä Ã Â Á Æ Å Ç È %Andrzej Rybczak  experimental Safe-Inferred 1ÁÃÄÅÌÚéš8 )Nickolay Kudasov  experimental Safe-Inferred%&žì ž openapi3?Options that specify how to encode your type to Swagger schema.  openapi3ØFunction applied to field labels. Handy for removing common record prefixes for example.¡ openapi3ÜFunction applied to constructor tags which could be handy for lower-casing them for example.¢ openapi3"Function applied to datatype name.£ openapi3If ° � the constructors of a datatype, with all nullary constructors, will be encoded to a string enumeration schema with the constructor tags as possible values.¤ openapi3ÑHide the field name when a record constructor has only one field, like a newtype.¥ openapi37Specifies how to encode constructors of a sum datatype.¦ openapi3Default encoding ž . ž  {    = id , ¡  = id , ¢  = id , £  = True , ¤  = False , ¥  = ±  } § openapi3Convert ²  to ž .-Specifically the following fields get copied:  ¡ £ ¤ )Note that these fields have no effect on ž :³ ´ The rest is defined as in ¦ . ž ¢ ¤ ¥ £ ¡   Ÿ ¦ § ž ¢ ¤ ¥ £ ¡   Ÿ ¦ §  Safe-Inferred"01<ÁÂÃÌÙÚÛÜ©Á ¯ openapi3Convert a type into a plain Ö.ÅIn previous versions of the package there was a separate type called  ParamSchema#, which was included in a greater Öå. Now this is a single class, but distinction for schema generators for "simple" types is preserved.¯ È is suited only for primitive-like types without nested fields and such.An example type and instance: 8{-# LANGUAGE OverloadedStrings #-} -- allows to write µ ½ literals import Control.Lens data Direction = Up | Down instance ToParamSchema Direction where toParamSchema _ = mempty & type_ ?~ OpenApiString & enum_ ?~ [ "Up", "Down" ] !Instead of manually writing your ¯ ; instance you can use a default generic implementation of ° .To do that, simply add  deriving ¶ ( clause to your datatype and declare a ¯ ; instance for your datatype without giving definition for ° .?For instance, the previous example can be simplified into this: �{-# LANGUAGE DeriveGeneric #-} import GHC.Generics (Generic) data Direction = Up | Down deriving Generic instance ToParamSchema Direction ° openapi3-Convert a type into a plain parameter schema.ÄBSL.putStrLn $ encodePretty $ toParamSchema (Proxy :: Proxy Integer){ "type": "integer"}± openapi38Default schema for binary data (any sequence of octets).² openapi30Default schema for binary data (base64 encoded).³ openapi3%Default schema for password string.  "password"; format is used to hint UIs the input needs to be obscured.´ openapi3Default plain schema for · , ¸  types.ÐBSL.putStrLn $ encodePretty $ toParamSchemaBoundedIntegral (Proxy :: Proxy Int8){ "maximum": 127, "minimum": -128, "type": "integer"}¶ openapi3A configurable generic Ö creator.:set -XDeriveGeneric(data Color = Red | Blue deriving GenericÞBSL.putStrLn $ encodePretty $ genericToParamSchema defaultSchemaOptions (Proxy :: Proxy Color){ "enum": [ "Red", "Blue" ], "type": "string"}» openapi3?BSL.putStrLn $ encodePretty $ toParamSchema (Proxy :: Proxy ()){ "enum": [ "_" ], "type": "string"}Ð openapi30toParamSchema (Proxy :: Proxy UTCTime) ^. formatJust "yyyy-mm-ddThh:MM:ssZ"Ñ openapi32toParamSchema (Proxy :: Proxy ZonedTime) ^. formatJust "date-time"Ò openapi32toParamSchema (Proxy :: Proxy LocalTime) ^. formatJust "yyyy-mm-ddThh:MM:ss"Ó openapi32toParamSchema (Proxy :: Proxy TimeOfDay) ^. formatJust "hh:MM:ss"Ô openapi3Format "date" corresponds to  yyyy-mm-dd format.¨ © ª « ¬ ­ ® ¯ ° ± ² ³ ´ µ ¶ ± ² ³ ¯ ° ´ µ ® ¶ ¬ ­ ª « ¨ © )Nickolay Kudasov  experimental Safe-InferredªZž Ÿ   ¡ £ ¥ ¤ ¢ ¦ ¯ ° ± ² ³ ´ ¶ ¯ ° ¶ ´ ³ ± ² ž Ÿ   ¡ £ ¥ ¤ ¢ ¦  Safe-Inferred"#/01<ÁÂÃÌÔÙÚÛÜïÚ}$ø openapi3Convert a type into Ö.An example type and instance: 8{-# LANGUAGE OverloadedStrings #-} -- allows to write µ  literals {-# LANGUAGE OverloadedLists #-} -- allows to write ¹  and º Á as lists import Control.Lens import Data.Proxy import Data.OpenApi data Coord = Coord { x :: Double, y :: Double } instance ToSchema Coord where declareNamedSchema _ = do doubleSchema <- declareSchemaRef (Proxy :: Proxy Double) return $ NamedSchema (Just "Coord") $ mempty & type_ ?~ OpenApiObject & properties .~ [ ("x", doubleSchema) , ("y", doubleSchema) ] & required .~ [ "x", "y" ] !Instead of manually writing your ø ; instance you can use a default generic implementation of ù .To do that, simply add  deriving » ( clause to your datatype and declare a ø ; instance for your datatype without giving definition for ù .?For instance, the previous example can be simplified into this: ™{-# LANGUAGE DeriveGeneric #-} import GHC.Generics (Generic) data Coord = Coord { x :: Double, y :: Double } deriving Generic instance ToSchema Coord ù openapi3ÎConvert a type into an optionally named schema together with all used definitions. Note that the schema itself is included in definitions only if it is recursive (and thus needs its definition in scope).ÿ openapi3ÅConvert a type into a schema and declare all used schema definitions.€ openapi3/Convert a type into an optionally named schema.-toNamedSchema (Proxy :: Proxy String) ^. nameNothingÍBSL.putStrLn $ encodePretty (toNamedSchema (Proxy :: Proxy String) ^. schema){ "type": "string"}*toNamedSchema (Proxy :: Proxy Day) ^. name Just "Day"ÊBSL.putStrLn $ encodePretty (toNamedSchema (Proxy :: Proxy Day) ^. schema){ "example": "2016-07-22", "format": "date", "type": "string"}� openapi3(Get type's schema name according to its ø  instance.schemaName (Proxy :: Proxy Int)Nothing#schemaName (Proxy :: Proxy UTCTime)Just "UTCTime"‚ openapi3Convert a type into a schema.BSL.putStrLn $ encodePretty $ toSchemaRef (Proxy :: Proxy Day){& "$ref": "#/components/schemas/Day"}„ openapi3¢Convert a type into a referenced schema if possible and declare all used schema definitions. Only named schemas can be referenced, nameless schemas are inlined.ËSchema definitions are typically declared for every referenced schema. If „ í returns a reference, a corresponding schema will be declared (regardless of whether it is recusive or not).… openapi3ÃInline any referenced schema if its name satisfies given predicate.NOTE:ê if a referenced schema is not found in definitions the predicate is ignored and schema stays referenced.WARNING: … À will produce infinite schemas when inlining recursive schemas.† openapi3>Inline any referenced schema if its name is in the given list.NOTE:ñ if a referenced schema is not found in definitions it stays referenced even if it appears in the list of names.WARNING: † À will produce infinite schemas when inlining recursive schemas.‡ openapi3ÇInline all schema references for which the definition can be found in •.WARNING: ‡ À will produce infinite schemas when inlining recursive schemas.ˆ openapi30Convert a type into a schema without references.ÄBSL.putStrLn $ encodePretty $ toInlinedSchema (Proxy :: Proxy [Day]){ "items": { "example": "2016-07-22", "format": "date", "type": "string" }, "type": "array"}WARNING: ˆ ? will produce infinite schema when inlining recursive schemas.‰ openapi3 Inline all  non-recursive3 schemas for which the definition can be found in •.Š openapi3"Make an unrestrictive sketch of a Ö based on a ¼ ? instance. Produced schema can be used for further refinement.2BSL.putStrLn $ encodePretty $ sketchSchema "hello"{ "example": "hello", "type": "string"}4BSL.putStrLn $ encodePretty $ sketchSchema (1, 2, 3) { "example": [ 1, 2, 3 ], "items": { "type": "number" }, "type": "array"}7BSL.putStrLn $ encodePretty $ sketchSchema ("Jack", 25){ "example": [ "Jack", 25 ], "items": [ { "type": "string" }, { "type": "number" } ], "type": "array"}Ædata Person = Person { name :: String, age :: Int } deriving (Generic)instance ToJSON Person=BSL.putStrLn $ encodePretty $ sketchSchema (Person "Jack" 25){ "example": { "age": 25, "name": "Jack" }, "properties": { "age": { "type": "number" }, "name": { "type": "string" } }, "required": [ "age", "name" ], "type": "object"}‹ openapi3Make a restrictive sketch of a Ö based on a ¼ Á instance. Produced schema uses as much constraints as possible.8BSL.putStrLn $ encodePretty $ sketchStrictSchema "hello" { "enum": [ "hello" ], "maxLength": 5, "minLength": 5, "pattern": "hello", "type": "string"}:BSL.putStrLn $ encodePretty $ sketchStrictSchema (1, 2, 3)*{ "enum": [ [ 1, 2, 3 ] ], "items": [ { "enum": [ 1 ], "maximum": 1, "minimum": 1, "multipleOf": 1, "type": "number" }, { "enum": [ 2 ], "maximum": 2, "minimum": 2, "multipleOf": 2, "type": "number" }, { "enum": [ 3 ], "maximum": 3, "minimum": 3, "multipleOf": 3, "type": "number" } ], "maxItems": 3, "minItems": 3, "type": "array", "uniqueItems": true}=BSL.putStrLn $ encodePretty $ sketchStrictSchema ("Jack", 25) { "enum": [ [ "Jack", 25 ] ], "items": [ { "enum": [ "Jack" ], "maxLength": 4, "minLength": 4, "pattern": "Jack", "type": "string" }, { "enum": [ 25 ], "maximum": 25, "minimum": 25, "multipleOf": 25, "type": "number" } ], "maxItems": 2, "minItems": 2, "type": "array", "uniqueItems": true}Ædata Person = Person { name :: String, age :: Int } deriving (Generic)instance ToJSON PersonÃBSL.putStrLn $ encodePretty $ sketchStrictSchema (Person "Jack" 25)#{ "enum": [ { "age": 25, "name": "Jack" } ], "maxProperties": 2, "minProperties": 2, "properties": { "age": { "enum": [ 25 ], "maximum": 25, "minimum": 25, "multipleOf": 25, "type": "number" }, "name": { "enum": [ "Jack" ], "maxLength": 4, "minLength": 4, "pattern": "Jack", "type": "string" } }, "required": [ "age", "name" ], "type": "object"}� openapi3Default schema for · , ¸  types.ÌBSL.putStrLn $ encodePretty $ toSchemaBoundedIntegral (Proxy :: Proxy Int16){ "maximum": 32767, "minimum": -32768, "type": "integer"}Ž openapi3!Default generic named schema for · , ¸  types.� openapi3Declare a named schema for a newtype wrapper.� openapi3Declare Ö for a mapping with ·  ½ Û keys. This makes a much more useful schema when there aren't many options for key values.ædata ButtonState = Neutral | Focus | Active | Hover | Disabled deriving (Show, Bounded, Enum, Generic)instance ToJSON ButtonStateinstance ToSchema ButtonStateÎinstance ToJSONKey ButtonState where toJSONKey = toJSONKeyText (T.pack . show)type ImageUrl = T.TextçBSL.putStrLn $ encodePretty $ toSchemaBoundedEnumKeyMapping (Proxy :: Proxy (Map ButtonState ImageUrl)){ "properties": { "Active": { "type": "string" }, "Disabled": { "type": "string" }, "Focus": { "type": "string" }, "Hover": { "type": "string" }, "Neutral": { "type": "string" } }, "type": "object"}Note: this is only useful when key is encoded with ¾ . If it is encoded with ¿  then a regular schema for [(key, value)] is used.‘ openapi3A Ö for a mapping with ·  ½ Û keys. This makes a much more useful schema when there aren't many options for key values.ædata ButtonState = Neutral | Focus | Active | Hover | Disabled deriving (Show, Bounded, Enum, Generic)instance ToJSON ButtonStateinstance ToSchema ButtonStateÎinstance ToJSONKey ButtonState where toJSONKey = toJSONKeyText (T.pack . show)type ImageUrl = T.TextçBSL.putStrLn $ encodePretty $ toSchemaBoundedEnumKeyMapping (Proxy :: Proxy (Map ButtonState ImageUrl)){ "properties": { "Active": { "type": "string" }, "Disabled": { "type": "string" }, "Focus": { "type": "string" }, "Hover": { "type": "string" }, "Neutral": { "type": "string" } }, "type": "object"}Note: this is only useful when key is encoded with ¾ . If it is encoded with ¿  then a regular schema for [(key, value)] is used.’ openapi3A configurable generic Ö creator.“ openapi3A configurable generic Í$ creator. This function applied to ¦  is used as the default for ù " when the type is an instance of » ..Default implementation will use the name from À Á instance, including concrete instantioations of type variables. For example:ð_namedSchemaName $ undeclare $ genericDeclareNamedSchema defaultSchemaOptions (Proxy :: Proxy (Either Int Bool))Just "Either_Int_Bool"” openapi3 Derive a » 4-based name for a datatype and assign it to a given Ö.– openapi3 Construct Í usinng ¯ .— openapi3 Construct Ö usinng ¯ .Ÿ openapi3ÆConvert one component of the sum to schema, to be later combined with oneOf.¡ openapi3Single field constructor.° openapi3º openapi3>NOTE: This schema does not account for the uniqueness of keys.¿ openapi3+toSchema (Proxy :: Proxy UTCTime) ^. formatJust "yyyy-mm-ddThh:MM:ssZ"Á openapi3Format  "date-time" corresponds to yyyy-mm-ddThh:MM:ss(Z|+hh:MM) format. openapi3-toSchema (Proxy :: Proxy LocalTime) ^. formatJust "yyyy-mm-ddThh:MM:ss"à openapi3Format "date" corresponds to  yyyy-mm-dd format.Ê openapi3For ¼  instance, see  -http://hackage.haskell.org/package/uuid-aeson uuid-aeson package.ê openapi3Record fields.ë openapi3Optional record fields.� openapi3How to derive the name.openapi3,How to create a schema for the wrapped type.3î ï ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ € � ‚ ƒ „ … † ‡ ˆ ‰ Š ‹ Œ � Ž � � ‘ ’ “ ” • – — ˜ ™ š › œ � ž Ÿ   3ú û ü ý þ ø ù ÿ € � ‚ ƒ „ … † ‡ ˆ ‰ Š ‹ ö ÷ Œ õ � Ž � � ‘ ’ “ ” • – — ˜ ™ š › œ � ž ô ò ó Ÿ   ð ñ î ï )Nickolay Kudasov  experimental Safe-InferredÛ¦"ž Ÿ   ¡ £ ¥ ¤ ¢ ¦ § ø ù ÿ � ‚ ƒ „ … † ‡ ˆ ‰ Š ‹ � Ž � � ‘ ’ “ ” – — "ø ù ÿ „ ‚ ƒ � ˆ “ ’ � ” Ž � � ‘ – — Š ‹ ‰ ‡ † … ž Ÿ   ¡ £ ¥ ¤ ¢ ¦ § )Nickolay Kudasov  experimental Safe-Inferred×Üï] ì openapi3ðPrepend path piece to all operations of the spec. Leading and trailing slashes are trimmed/added automatically.Êlet api = (mempty :: OpenApi) & paths .~ IOHM.fromList [("/info", mempty)]ÇBSL.putStrLn $ encodePretty $ prependPath "user/{user_id}" api ^. paths{ "/user/{user_id}/info": {}}í openapi3!All operations of a Swagger spec.î openapi3î  sub: will traverse only those operations that are present in sub . Note that É( is determined by both path and method./let ok = (mempty :: Operation) & at 200 ?~ "OK"ãlet api = (mempty :: OpenApi) & paths .~ IOHM.fromList [("/user", mempty & get ?~ ok & post ?~ ok)]Úlet sub = (mempty :: OpenApi) & paths .~ IOHM.fromList [("/user", mempty & get ?~ mempty)]BSL.putStrLn $ encodePretty api{ "components": {}, "info": { "title": "", "version": "" }, "openapi": "3.0.0", "paths": { "/user": { "get": { "responses": { "200": {+ "description": "OK" } } }, "post": { "responses": { "200": {+ "description": "OK" } } } } }}ÌBSL.putStrLn $ encodePretty $ api & operationsOf sub . at 404 ?~ "Not found"{ "components": {}, "info": { "title": "", "version": "" }, "openapi": "3.0.0", "paths": { "/user": { "get": { "responses": { "200": {+ "description": "OK" }, "404": {2 "description": "Not found" } } }, "post": { "responses": { "200": {+ "description": "OK" } } } } }}ï openapi3ÀApply tags to all operations and update the global list of tags. ï  = ð  í  ð openapi3ÉApply tags to a part of Swagger spec and update the global list of tags.ñ openapi3Construct a response with Ö3 while declaring all necessary schema definitions. FIXME docéBSL.putStrLn $ encodePretty $ runDeclare (declareResponse "application/json" (Proxy :: Proxy Day)) mempty[ { "Day": {$ "example": "2016-07-22", "format": "date", "type": "string" } }, { "content": {! "application/json": { "schema": {6 "$ref": "#/components/schemas/Day" } } }, "description": "" }]ò openapi3ÒSet response for all operations. This will also update global schema definitions.6If the response already exists it will be overwritten. ò  = ô  í  Example:Úlet api = (mempty :: OpenApi) & paths .~ IOHM.fromList [("/user", mempty & get ?~ mempty)]Álet res = declareResponse "application/json" (Proxy :: Proxy Day)7BSL.putStrLn $ encodePretty $ api & setResponse 200 res"{ "components": { "schemas": { "Day": {( "example": "2016-07-22",! "format": "date", "type": "string" } } }, "info": { "title": "", "version": "" }, "openapi": "3.0.0", "paths": { "/user": { "get": { "responses": { "200": {$ "content": {1 "application/json": {+ "schema": {Æ "$ref": "#/components/schemas/Day"! } } },) "description": "" } } } } }} See also ó .ó openapi3ÜSet or update response for all operations. This will also update global schema definitions.ÆIf the response already exists, but it can't be dereferenced (invalid $ref'), then just the new response is used. ó  = õ  í   See also ò .ô openapi3ØSet response for specified operations. This will also update global schema definitions.6If the response already exists it will be overwritten. See also õ .õ openapi3âSet or update response for specified operations. This will also update global schema definitions.ÆIf the response already exists, but it can't be dereferenced (invalid $ref'), then just the new response is used. See also ô . ì í î ï ð ñ ò ó ô õ í î ï ð ò ó ô õ ì ñ (c) 2015 GetShopTVBSD3)Nickolay Kudasov  experimental Safe-Inferred()*18ÁÃÄÅÇÑ×ÛÜãÿƒö openapi3Value validation.ù openapi3Validation configuration.û openapi3Pattern checker for õ validation.ü openapi32Schema definitions in scope to resolve references.ý openapi3Validation result type.þ openapi30Validation failed with a list of error messages.ÿ openapi3Validation passed.€ openapi3Validation error message.� openapi3 Validate ¼  instance matches ø Ý for a given value. This can be used with QuickCheck to ensure those instances are coherent:validateToJSON (x :: Int) == []NOTE: ‚ 2 does not perform string pattern validation. See ƒ .See „ ! on how the output is structured.‚ openapi3 Variant of �  with typed output.ƒ openapi3 Validate ¼  instance matches ø ñ for a given value and pattern checker. This can be used with QuickCheck to ensure those instances are coherent.$For validation without patterns see ‚ . See also: „ .„ openapi3ÕPretty print validation errors together with actual JSON and Swagger Schema (using T). import Data.Aeson as Aeson import Data.Foldable (traverse_)import GHC.Generics9data Phone = Phone { value :: String } deriving (Generic)Êdata Person = Person { name :: String, phone :: Phone } deriving (Generic)Éinstance ToJSON Person where toJSON p = object [ "name" Aeson..= name p ]instance ToSchema Phoneinstance ToSchema Person=let person = Person { name = "John", phone = Phone "123456" }Átraverse_ putStrLn $ renderValidationErrors validateToJSON person($Validation against the schema fails:È * property "phone" is required, but not found in "{\"name\":\"John\"}" JSON value:{ "name": "John"}Swagger Schema:{ "properties": { "name": { "type": "string" }, "phone": {0 "$ref": "#/components/schemas/Phone" } }, "required": [ "name", "phone" ], "type": "object"}Swagger Description Context:{ "Phone": { "properties": { "value": { "type": "string" } }, "required": [ "value" ], "type": "object" }}… openapi3Validate JSON • against Swagger Ö.ÍvalidateJSON mempty (toSchema (Proxy :: Proxy Int)) (toJSON (x :: Int)) == []NOTE: … 2 does not perform string pattern validation. See † .† openapi3Validate JSON • agains Swagger ø ' for a given value and pattern checker.$For validation without patterns see … .‡ openapi3Default ù : defaultConfig = ù  { û  = \_pattern _str -> True , ü  = mempty } Š openapi3Issue an error message.‹ openapi3Validation passed.Œ openapi3ÑValidate schema's property given a lens into that property and property checker.� openapi3‡Validate schema's property given a lens into that property and property checker. If property is missing in schema, consider it valid.Ž openapi3*Validate same value with different schema.� openapi37Validate same value with a part of the original schema.� openapi3ÏValidate value against a schema given schema reference and validation function.’ openapi3Validate JSON • with Swagger Ö.™ openapi3+Infer schema type based on used properties. This is like š , but also works for objects:4inferSchemaTypes <$> decode "{\"minProperties\": 1}"Just [OpenApiObject]š openapi3+Infer schema type based on used properties.0inferSchemaTypes <$> decode "{\"minLength\": 2}"Just [OpenApiString]/inferSchemaTypes <$> decode "{\"maxItems\": 0}"Just [OpenApiArray]From numeric properties … type is inferred. If you want „) instead, you must specify it explicitly..inferSchemaTypes <$> decode "{\"minimum\": 1}"Just [OpenApiInteger](ö ø ÷ ù ü û ú ý ÿ þ € � ‚ ƒ „ … † ‡ ˆ ‰ Š ‹ Œ � Ž � � ‘ ’ “ ” • – — ˜ ™ š › œ � (� ‚ ƒ „ … † € ý ÿ þ ù ü û ú ‡ ö ø ÷ ˆ ‰ Š ‹ Œ � Ž � � ‘ ’ “ ” • – — ˜ ™ š › œ � )Nickolay Kudasov  experimental Safe-Inferred€€ � ‚ ƒ „ … † € � ‚ ƒ „ … † )Nickolay Kudasov  experimental Safe-Inferredù¯cdefghikjlmnopqrstuvwxyz{|}~€�‚ƒ„…†‡ˆ‰ŠŒ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•àáâãäåæçèéêëìíîïøùúûüýþÿ€�‚ƒ„…†‡ˆ‰“”•–—˜œ�žŸ£¤¥¦§¨­®¯°±²³´µ¶½¾¿ÀÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×çèéêëìùúûüýþÿ€�‚—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐö÷øùúûüý‹ Œ Ž � ” • – — ˜ ™ š › ¢ £ © ª « ¬ ± ² ³ ´ · ¸ ¹ º Á Â Ã Ä Å Æ Ç È ž ¢ ¤ ¥ £ ¡ Ÿ   ¦ § ¯ ° ± ² ³ ´ ¶ ø ù ÿ � ‚ ƒ „ … † ‡ ˆ ‰ Š ‹ � Ž � � ‘ ’ “ ” – — ì í î ï ð ñ ò ó ô õ € � ‚ ƒ „ … † ¯‹Œ�Ž��‘’“”õö÷øùðñòóôåæçèéêëìíî…†‡ˆ‰Šþÿ€�‚úûüýרÙÚÛÜÝÞßàáâãäÉÊËÌÍÎÏÐÑÒÓÔÕÖstuvwx‚ƒ„…†‡ˆ‰ü•¶·¸¹º»¼½žŸ ¡¢£¤¥¦§¨©ª«ýþÿ€�û®¯°±²³´µ¶·¸˜™š›œ�ÄÅÆÇȾ¿ÀÁÂï°±²³´µÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúÍÎÏЊ‹ŒÆÇÈÉÊËÌÕcdeÑÒÓÔÂÃÄÅ»¼½¾¿ÀÁ�Ž��‘’“”¹º~€�‚ƒ„…†‡ˆ‰Š|}yz{¦§¨©ª«¬­Œ�Ž��‘’“”•–¡¢£žŸ ›œ�—˜™š¥¤opqrlmnikj¬­®fgh Safe-Inferred#)*ܪ openapi3Note: ª  may Á ;, if schema type is not specified, and cannot be inferred.ª « ¬ ­ ª « ¬ ­   !!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrrstuvwwxyz{||}~~€��‚ƒ„…††‡ˆˆ‰‰Š‹Œ�Ž��‘’“”•––—˜™š››œ�žŸŸ ¡¢¢£¤¤¥¦¦§¨©ªª«¬­®¯°±±²³´µ¶·¸¹º»»¼¼½¾¿ÀÁÂÂÃÄÅÅÆÇÈÉÊËËÌÍÎÎÏÐÑÒÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ€�‚ƒ„…†‡ˆˆ‰Š‹Œ�Ž��‘’’“”•–——˜™š›œ�žŸ ¡¢£¤¤¥¦¦§¨©ª«¬­®¯°±²³´´µ¶·¸¹¹º»¼½½¾¿ÀÁÂÃÄÅÆÇÈÉÊÊËÌÍÎÏÐÑÒÓÔÕÖ×רÙÚÛÜÝÞßàááâãäååæçèééêëììíîïððñòóôõö÷÷øùúûüýþÿ€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘l’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ€ � ‚ ƒ „ … † ‡ ˆ ‰ Š ‹ Œ � Ž � � ‘ ’ “ ” • – — ˜ ™ š › œ � ž Ÿ   ¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬ ­ ® ¯ ° ± ² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿ À Á  à Ä Å Æ Ç È É Ê Ë Ì Í Î Ï Ð Ñ Ò Ó Ô Õ Ö × Ø Ù Ú Û Ü Ý Þ ß à á â ã ä å æ ç è é ê ë ì í î ï ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ € � ‚ ƒ „ … † ‡ ˆ ‰ Š ‹ Œ � Ž � � ‘ ’ “ ” • – — ˜ ™ š › œ � ž Ÿ   ¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬ ­ ® ¯ ° ± ² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿ À Á  à Ä Å Æ Ç È É Ê Ë Ì Í Î Ï Ð Ñ Ò Ó Ô Õ Ö × Ø Ù Ú Û Ü Ý Þ ß à á â ã ä å æ ç è é ê ë ì í î ï ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ  à Ä Å € � ‚ ƒ „ „ … † ‡ ˆ ‰ Š ‹ Œ � � Ž � � ‘ ’ “ ” • – — ˜ ™ š › œ � ž Ÿ   ¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬ ­ ® ¯ ° ± ² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿ À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï Ð Ñ � � Ò Ò Ó Ô Õ Ö × Ø Ù Ú Û Ü Ý Þ ß à á â ã ä å æ ç è é ê ë ì í î ï ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ € � ‚ ƒ „ … † ‡ ˆ ‰ Š ‹ Œ � Ž � � ‘ ’ “ ” • – — ˜ ™ š › œ � ž Ÿ   ¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬ ­ ® ¯ ° ± ² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿ À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï Ð Ñ Ò Ó Ô Õ Ö × × Ø Ù Ù Ú Û Ü Ý Þ ß à á â ã ä å æ ç è é ê ë ì í î ï ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ € � ‚ ƒ „ … † ‡ ˆ ‰ Š ‹ Œ � Ž � � ‘ ’ � ‘ “ ” • – ” • — ” • ˜ ” • ™ š › œ š � ž � Ÿ   � ¡ ¢ £ ¤ ¥ ¦ § ¨ � © ª ” « ¬ � Ÿ ­ ” « ® ” « ¯ � ° ± � ² ³ ´ %openapi3-3.2.4-1adYdKxRxBlGiMnqlIiKo2Data.OpenApi.Aeson.CompatData.OpenApi.Declare Data.OpenApi.Internal.AesonUtilsData.OpenApi.Internal.TypeShapeData.OpenApi.Internal.UtilsData.OpenApi.InternalData.OpenApi.LensData.OpenApi.OpticsData.OpenApi.SchemaOptions!Data.OpenApi.Internal.ParamSchemaData.OpenApi.Internal.SchemaData.OpenApi.Operation'Data.OpenApi.Internal.Schema.ValidationData.OpenApi.Schema.GeneratorData.OpenApi.ParamSchemaData.OpenApi.SchemaData.OpenApi.Schema.Validation Data.OpenApi deleteKey objectToList objectKeys stringToKey keyToString keyToTexttoInsOrdHashMapfromInsOrdHashMap lookupKeyhasKeyDeclare MonadDeclaredeclarelookDeclareT runDeclareT liftDeclarelooks evalDeclareT execDeclareT undeclareT runDeclare evalDeclare execDeclare undeclare$fMonadTransDeclareT$fMonadDeclareT$fApplicativeDeclareT$fMonadDeclaredWriterT$fMonadDeclaredWriterT0$fMonadDeclaredStateT$fMonadDeclaredStateT0$fMonadDeclaredRWST$fMonadDeclaredRWST0$fMonadDeclaredReaderT$fMonadDeclaredMaybeT$fMonadDeclaredIdentityT$fMonadDeclaredExceptT$fMonadDeclaredContT$fMonadDeclaredDeclareT$fFunctorDeclareTSwaggerAesonOptionsmkSwaggerAesonOptionsAesonDefaultValue defaultValueHasSwaggerAesonOptionsswaggerAesonOptions aesonDefaultssaoAdditionalPairs saoPrefix saoSubObjectsopSwaggerGenericToJSONsopSwaggerGenericToJSONWithOptssopSwaggerGenericParseJSONsopSwaggerGenericToEncoding $fAesonDefaultValueInsOrdHashMap $fAesonDefaultValueInsOrdHashSet$fAesonDefaultValueSet$fAesonDefaultValue[]$fAesonDefaultValueMaybe$fAesonDefaultValueText GenericShapeGenericHasSimpleShapeTypeHasSimpleShape SumCombine ProdCombine TypeShape Enumeration SumOfProductsMixed SwaggerMonoid swaggerMemptyswaggerMappendGMonoidgmemptygmappendswaggerFieldRules gunfoldEnum jsonPrefix parseOneOf<+> genericMemptygenericMappend encodePretty $fGMonoidM1 $fGMonoid:*: $fGMonoidU1$fSwaggerMonoidMaybe$fSwaggerMonoidText$fSwaggerMonoidInsOrdHashMap$fSwaggerMonoidHashMap$fSwaggerMonoidMap$fSwaggerMonoidSet$fSwaggerMonoid[] $fGMonoidK1OpenApiSpecVersion getVersionAdditionalPropertiesAdditionalPropertiesAllowedAdditionalPropertiesSchemaURLgetUrl ReferencedRefInline Reference getReference ExternalDocs_externalDocsDescription_externalDocsUrlTag_tagName_tagDescription_tagExternalDocsTagNameSecurityRequirementgetSecurityRequirementSecurityDefinitionsSecurityScheme_securitySchemeType_securitySchemeDescriptionSecuritySchemeTypeSecuritySchemeHttpSecuritySchemeApiKeySecuritySchemeOAuth2SecuritySchemeOpenIdConnectHttpSchemeTypeHttpSchemeBearerHttpSchemeBasicHttpSchemeCustom BearerFormat OAuth2Flows_oAuth2FlowsImplicit_oAuth2FlowsPassword_oAuth2FlowsClientCredentials_oAuth2FlowsAuthorizationCode OAuth2Flow _oAuth2Params_oAath2RefreshUrl _oAuth2ScopesOAuth2AuthorizationCodeFlow,_oAuth2AuthorizationCodeFlowAuthorizationUrl$_oAuth2AuthorizationCodeFlowTokenUrlOAuth2ClientCredentialsFlow$_oAuth2ClientCredentialsFlowTokenUrlOAuth2PasswordFlow_oAuth2PasswordFlowTokenUrlOAuth2ImplicitFlow#_oAuth2ImplicitFlowAuthorizationUrlTokenURLAuthorizationURL ApiKeyParams _apiKeyName _apiKeyInApiKeyLocation ApiKeyQuery ApiKeyHeader ApiKeyCookieHeader_headerDescription_headerRequired_headerDeprecated_headerAllowEmptyValue_headerExplode_headerExample_headerExamples _headerSchema HeaderNameCallbackResponse_responseDescription_responseContent_responseHeaders_responseLinksHttpStatusCode Responses_responsesDefault_responsesResponsesXml_xmlName _xmlNamespace _xmlPrefix _xmlAttribute _xmlWrapped NamedSchema_namedSchemaName_namedSchemaSchema Discriminator_discriminatorPropertyName_discriminatorMappingPatternSchema _schemaTitle_schemaDescription_schemaRequired_schemaNullable _schemaAllOf _schemaOneOf _schemaNot _schemaAnyOf_schemaProperties_schemaAdditionalProperties_schemaDiscriminator_schemaReadOnly_schemaWriteOnly _schemaXml_schemaExternalDocs_schemaExample_schemaDeprecated_schemaMaxProperties_schemaMinProperties_schemaDefault _schemaType _schemaFormat _schemaItems_schemaMaximum_schemaExclusiveMaximum_schemaMinimum_schemaExclusiveMinimum_schemaMaxLength_schemaMinLength_schemaPattern_schemaMaxItems_schemaMinItems_schemaUniqueItems _schemaEnum_schemaMultipleOf ParamNameFormat ParamLocation ParamQuery ParamHeader ParamPath ParamCookie OpenApiType OpenApiString OpenApiNumberOpenApiIntegerOpenApiBoolean OpenApiArray OpenApiNull OpenApiObject OpenApiItemsOpenApiItemsObjectOpenApiItemsArrayLink_linkOperationRef_linkOperationId_linkParameters_linkRequestBody_linkDescription _linkServerExpressionOrValue ExpressionValueExample_exampleSummary_exampleDescription _exampleValue_exampleExternalValueParam _paramName_paramDescription_paramRequired_paramDeprecated_paramIn_paramAllowEmptyValue_paramAllowReserved _paramSchema _paramStyle _paramExplode _paramExample_paramExamplesMimeList getMimeListEncoding_encodingContentType_encodingHeaders_encodingStyle_encodingExplode_encodingAllowReservedStyle StyleMatrix StyleLabel StyleForm StyleSimpleStyleSpaceDelimitedStylePipeDelimitedStyleDeepObjectMediaTypeObject_mediaTypeObjectSchema_mediaTypeObjectExample_mediaTypeObjectExamples_mediaTypeObjectEncoding RequestBody_requestBodyDescription_requestBodyContent_requestBodyRequired Operation_operationTags_operationSummary_operationDescription_operationExternalDocs_operationOperationId_operationParameters_operationRequestBody_operationResponses_operationCallbacks_operationDeprecated_operationSecurity_operationServersPathItem_pathItemSummary_pathItemDescription _pathItemGet _pathItemPut _pathItemPost_pathItemDelete_pathItemOptions _pathItemHead_pathItemPatch_pathItemTrace_pathItemServers_pathItemParameters Components_componentsSchemas_componentsResponses_componentsParameters_componentsExamples_componentsRequestBodies_componentsHeaders_componentsSecuritySchemes_componentsLinks_componentsCallbacksServerVariable_serverVariableEnum_serverVariableDefault_serverVariableDescriptionServer _serverUrl_serverDescription_serverVariablesLicense _licenseName _licenseUrlContact _contactName _contactUrl _contactEmailInfo _infoTitle_infoDescription_infoTermsOfService _infoContact _infoLicense _infoVersionOpenApi _openApiInfo_openApiServers _openApiPaths_openApiComponents_openApiSecurity _openApiTags_openApiExternalDocs_openApiOpenapi DefinitionslowerOpenApiSpecVersionupperOpenApiSpecVersionmediaTypeConstr mediaTypeDatamimeListConstrmimeListDataType$fHashableMediaType$fDataMediaType$fIsStringServer$fDataMimeList$fIsStringReferenced$fHashableExternalDocs $fIsStringTag $fHashableTag$fIsStringLicense$fIsStringResponse $fEqOpenApi $fShowOpenApi$fGenericOpenApi $fDataOpenApi$fEqOpenApiSpecVersion$fShowOpenApiSpecVersion$fGenericOpenApiSpecVersion$fDataOpenApiSpecVersion$fEqComponents$fShowComponents$fGenericComponents$fDataComponents $fEqOperation$fShowOperation$fGenericOperation$fDataOperation $fEqCallback$fShowCallback$fGenericCallback$fDataCallback $fEqPathItem$fShowPathItem$fGenericPathItem$fDataPathItem$fEqRequestBody$fShowRequestBody$fGenericRequestBody$fDataRequestBody $fEqResponses$fShowResponses$fGenericResponses$fDataResponses $fEqResponse$fShowResponse$fGenericResponse$fDataResponse$fEqMediaTypeObject$fShowMediaTypeObject$fGenericMediaTypeObject$fDataMediaTypeObject $fEqParam $fShowParam$fGenericParam $fDataParam$fEqNamedSchema$fShowNamedSchema$fGenericNamedSchema$fDataNamedSchema $fEqEncoding$fShowEncoding$fGenericEncoding$fDataEncoding $fEqHeader $fShowHeader$fGenericHeader $fDataHeader$fEqAdditionalProperties$fShowAdditionalProperties$fDataAdditionalProperties $fEqSchema $fShowSchema$fGenericSchema $fDataSchema$fEqOpenApiItems$fShowOpenApiItems$fDataOpenApiItems$fEqInfo $fShowInfo $fGenericInfo $fDataInfo $fEqContact $fShowContact$fGenericContact $fDataContact $fEqLicense $fShowLicense$fGenericLicense $fDataLicense $fEqExample $fShowExample$fGenericExample $fDataExample$fEqSecurityDefinitions$fShowSecurityDefinitions$fGenericSecurityDefinitions$fDataSecurityDefinitions$fEqSecurityScheme$fShowSecurityScheme$fGenericSecurityScheme$fDataSecurityScheme$fEqSecuritySchemeType$fShowSecuritySchemeType$fGenericSecuritySchemeType$fDataSecuritySchemeType$fEqOAuth2Flows$fShowOAuth2Flows$fGenericOAuth2Flows$fDataOAuth2Flows$fEqOAuth2Flow$fShowOAuth2Flow$fGenericOAuth2Flow$fDataOAuth2Flow$fEqTag$fOrdTag $fShowTag $fGenericTag $fDataTag$fEqExternalDocs$fOrdExternalDocs$fShowExternalDocs$fGenericExternalDocs$fDataExternalDocs$fEqURL$fOrdURL $fShowURL $fHashableURL $fToJSONURL $fFromJSONURL $fDataURL$fEqReferenced$fShowReferenced$fFunctorReferenced$fDataReferenced $fEqReference$fShowReference$fDataReference$fEqSecurityRequirement$fReadSecurityRequirement$fShowSecurityRequirement$fSemigroupSecurityRequirement$fMonoidSecurityRequirement$fToJSONSecurityRequirement$fFromJSONSecurityRequirement$fDataSecurityRequirement$fEqHttpSchemeType$fShowHttpSchemeType$fGenericHttpSchemeType$fDataHttpSchemeType$fEqOAuth2AuthorizationCodeFlow!$fShowOAuth2AuthorizationCodeFlow$$fGenericOAuth2AuthorizationCodeFlow!$fDataOAuth2AuthorizationCodeFlow$fEqOAuth2ClientCredentialsFlow!$fShowOAuth2ClientCredentialsFlow$$fGenericOAuth2ClientCredentialsFlow!$fDataOAuth2ClientCredentialsFlow$fEqOAuth2PasswordFlow$fShowOAuth2PasswordFlow$fGenericOAuth2PasswordFlow$fDataOAuth2PasswordFlow$fEqOAuth2ImplicitFlow$fShowOAuth2ImplicitFlow$fGenericOAuth2ImplicitFlow$fDataOAuth2ImplicitFlow$fEqApiKeyParams$fShowApiKeyParams$fGenericApiKeyParams$fDataApiKeyParams$fEqApiKeyLocation$fShowApiKeyLocation$fGenericApiKeyLocation$fDataApiKeyLocation$fEqXml $fShowXml $fGenericXml $fDataXml$fEqDiscriminator$fShowDiscriminator$fGenericDiscriminator$fDataDiscriminator$fEqParamLocation$fShowParamLocation$fGenericParamLocation$fDataParamLocation$fEqOpenApiType$fShowOpenApiType$fGenericOpenApiType$fDataOpenApiType$fEqLink $fShowLink $fGenericLink $fDataLink$fEqExpressionOrValue$fShowExpressionOrValue$fGenericExpressionOrValue$fDataExpressionOrValue $fEqMimeList$fShowMimeList$fSemigroupMimeList$fMonoidMimeList $fEqStyle $fShowStyle$fGenericStyle $fDataStyle $fEqServer $fShowServer$fGenericServer $fDataServer$fEqServerVariable$fShowServerVariable$fGenericServerVariable$fDataServerVariable$fHasDatatypeInfoServer$fGenericServer0$fHasDatatypeInfoComponents$fGenericComponents0$fHasDatatypeInfoHeader$fGenericHeader0$fHasDatatypeInfoOAuth2Flow$fGenericOAuth2Flow0$fHasDatatypeInfoOAuth2Flows$fGenericOAuth2Flows0$fHasDatatypeInfoOperation$fGenericOperation0$fHasDatatypeInfoParam$fGenericParam0$fHasDatatypeInfoPathItem$fGenericPathItem0$fHasDatatypeInfoResponse$fGenericResponse0$fHasDatatypeInfoRequestBody$fGenericRequestBody0 $fHasDatatypeInfoMediaTypeObject$fGenericMediaTypeObject0$fHasDatatypeInfoResponses$fGenericResponses0$fHasDatatypeInfoSecurityScheme$fGenericSecurityScheme0$fHasDatatypeInfoSchema$fGenericSchema0$fHasDatatypeInfoOpenApi$fGenericOpenApi0$fHasDatatypeInfoExample$fGenericExample0$fHasDatatypeInfoEncoding$fGenericEncoding0$fHasDatatypeInfoLink$fGenericLink0referencedToJSONreferencedParseJSON&$fAesonDefaultValueSecurityDefinitions$fAesonDefaultValueLink $fAesonDefaultValueParamLocation$fAesonDefaultValueInfo$fAesonDefaultValueMimeList$fAesonDefaultValueOpenApiType%$fAesonDefaultValueSecuritySchemeType$fAesonDefaultValueResponses$fAesonDefaultValueOAuth2Flow.$fAesonDefaultValueOAuth2AuthorizationCodeFlow.$fAesonDefaultValueOAuth2ClientCredentialsFlow%$fAesonDefaultValueOAuth2PasswordFlow%$fAesonDefaultValueOAuth2ImplicitFlow$fAesonDefaultValueComponents$fAesonDefaultValueServer%$fAesonDefaultValueOpenApiSpecVersion$fAesonDefaultValueVersion$fHasSwaggerAesonOptionsLink $fHasSwaggerAesonOptionsEncoding$fHasSwaggerAesonOptionsExample$fHasSwaggerAesonOptionsOpenApi*$fHasSwaggerAesonOptionsOpenApiSpecVersion$fHasSwaggerAesonOptionsSchema&$fHasSwaggerAesonOptionsSecurityScheme!$fHasSwaggerAesonOptionsResponses'$fHasSwaggerAesonOptionsMediaTypeObject#$fHasSwaggerAesonOptionsRequestBody $fHasSwaggerAesonOptionsResponse $fHasSwaggerAesonOptionsPathItem$fHasSwaggerAesonOptionsParam!$fHasSwaggerAesonOptionsOperation#$fHasSwaggerAesonOptionsOAuth2Flows"$fHasSwaggerAesonOptionsOAuth2Flow$fHasSwaggerAesonOptionsHeader"$fHasSwaggerAesonOptionsComponents$fHasSwaggerAesonOptionsServer$fFromJSONCallback$fFromJSONExpressionOrValue$fFromJSONAdditionalProperties $fFromJSONXml$fFromJSONReferenced$fFromJSONReferenced0$fFromJSONReferenced1$fFromJSONReferenced2$fFromJSONReferenced3$fFromJSONReferenced4$fFromJSONReferenced5$fFromJSONReferenced6$fFromJSONReference$fFromJSONLink$fFromJSONEncoding$fFromJSONMediaTypeObject$fFromJSONRequestBody$fFromJSONSecurityDefinitions$fFromJSONPathItem$fFromJSONOperation$fFromJSONResponse$fFromJSONExample$fFromJSONResponses$fFromJSONParam$fFromJSONMimeList$fFromJSONComponents$fFromJSONOpenApiItems$fFromJSONHeader$fFromJSONSchema$fFromJSONSecurityScheme$fFromJSONServer$fFromJSONOpenApi$fFromJSONSecuritySchemeType$fFromJSONOAuth2Flows$fFromJSONOAuth2Flow$fFromJSONKeyMediaType$fFromJSONMediaType$fFromJSONOpenApiSpecVersion$fToJSONCallback$fToJSONExpressionOrValue$fToJSONAdditionalProperties$fToJSONReferenced$fToJSONReferenced0$fToJSONReferenced1$fToJSONReferenced2$fToJSONReferenced3$fToJSONReferenced4$fToJSONReferenced5$fToJSONReferenced6$fToJSONReference$fToJSONSecurityDefinitions $fToJSONLink$fToJSONEncoding$fToJSONExample$fToJSONMediaTypeObject$fToJSONRequestBody$fToJSONPathItem$fToJSONOperation$fToJSONResponse$fToJSONResponses $fToJSONParam$fToJSONMimeList$fToJSONComponents$fToJSONOpenApiItems$fToJSONHeader$fToJSONSchema$fToJSONSecurityScheme$fToJSONServer$fToJSONOpenApi$fToJSONSecuritySchemeType$fToJSONOAuth2Flows$fToJSONOAuth2Flow$fToJSONKeyMediaType$fToJSONMediaType$fToJSONOpenApiSpecVersion%$fFromJSONOAuth2AuthorizationCodeFlow%$fFromJSONOAuth2ClientCredentialsFlow$fFromJSONOAuth2PasswordFlow$fFromJSONOAuth2ImplicitFlow$fFromJSONDiscriminator$fFromJSONExternalDocs $fFromJSONTag$fFromJSONApiKeyParams$fFromJSONApiKeyLocation$fFromJSONServerVariable$fFromJSONLicense$fFromJSONContact$fFromJSONInfo$fFromJSONParamLocation$fFromJSONOpenApiType$fFromJSONStyle#$fToJSONOAuth2AuthorizationCodeFlow#$fToJSONOAuth2ClientCredentialsFlow$fToJSONOAuth2PasswordFlow$fToJSONOAuth2ImplicitFlow$fToJSONDiscriminator $fToJSONXml$fToJSONExternalDocs $fToJSONTag$fToJSONApiKeyParams$fToJSONApiKeyLocation$fToJSONServerVariable$fToJSONLicense$fToJSONContact $fToJSONInfo$fToJSONParamLocation$fToJSONOpenApiType $fToJSONStyle$fSwaggerMonoidReferenced$fSwaggerMonoidParamLocation$fSwaggerMonoidOpenApiType$fSwaggerMonoidMimeList!$fSwaggerMonoidOpenApiSpecVersion"$fSwaggerMonoidSecurityDefinitions$fSwaggerMonoidInsOrdHashSet$fSwaggerMonoidOperation$fSwaggerMonoidExternalDocs$fSwaggerMonoidResponse$fSwaggerMonoidResponses$fSwaggerMonoidParam$fSwaggerMonoidSchema$fSwaggerMonoidPathItem$fSwaggerMonoidComponents$fSwaggerMonoidInfo$fMonoidRequestBody$fSemigroupRequestBody$fMonoidSecurityDefinitions$fSemigroupSecurityDefinitions$fSemigroupSecurityScheme$fMonoidOAuth2Flows$fSemigroupOAuth2Flows$fSemigroupOAuth2Flow$fMonoidOperation$fSemigroupOperation$fMonoidExternalDocs$fSemigroupExternalDocs$fMonoidEncoding$fSemigroupEncoding$fMonoidMediaTypeObject$fSemigroupMediaTypeObject$fMonoidResponse$fSemigroupResponse$fMonoidResponses$fSemigroupResponses$fMonoidHeader$fSemigroupHeader $fMonoidParam$fSemigroupParam$fMonoidSchema$fSemigroupSchema$fMonoidPathItem$fSemigroupPathItem$fMonoidComponents$fSemigroupComponents$fMonoidContact$fSemigroupContact $fMonoidInfo$fSemigroupInfo$fMonoidOpenApi$fSemigroupOpenApi$fMonoidOpenApiSpecVersion$fSemigroupOpenApiSpecVersion#$fHasDatatypeInfoOpenApiSpecVersion$fGenericOpenApiSpecVersion0$fSwaggerMonoidURLHasTagstags HasServersservers HasSecuritysecurityHasPathspaths HasOpenapiopenapiHasInfoinfoHasExternalDocs externalDocs HasComponents components $fHasComponentsOpenApiComponents$fHasExternalDocsOpenApiMaybe$fHasInfoOpenApiInfo%$fHasOpenapiOpenApiOpenApiSpecVersion$fHasPathsOpenApiInsOrdHashMap$fHasSecurityOpenApi[]$fHasServersOpenApi[]$fHasTagsOpenApiInsOrdHashSetHasSecuritySchemessecuritySchemes HasSchemasschemas HasResponses responsesHasRequestBodies requestBodies HasParameters parametersHasLinkslinks HasHeadersheaders HasExamplesexamples HasCallbacks callbacks%$fHasCallbacksComponentsInsOrdHashMap$$fHasExamplesComponentsInsOrdHashMap#$fHasHeadersComponentsInsOrdHashMap!$fHasLinksComponentsInsOrdHashMap&$fHasParametersComponentsInsOrdHashMap)$fHasRequestBodiesComponentsInsOrdHashMap%$fHasResponsesComponentsInsOrdHashMap#$fHasSchemasComponentsInsOrdHashMap1$fHasSecuritySchemesComponentsSecurityDefinitions HasVariables variablesHasUrlurlHasDescription description$fHasDescriptionServerMaybe$fHasUrlServerText!$fHasVariablesServerInsOrdHashMap HasRequiredrequired HasContentcontent $fHasDescriptionRequestBodyMaybe$$fHasContentRequestBodyInsOrdHashMap$fHasRequiredRequestBodyMaybe HasSchemaschema HasExampleexample HasEncodingencoding)$fHasExamplesMediaTypeObjectInsOrdHashMap)$fHasEncodingMediaTypeObjectInsOrdHashMap $fHasExampleMediaTypeObjectMaybe$fHasSchemaMediaTypeObjectMaybe HasVersionversionHasTitletitleHasTermsOfServicetermsOfService HasLicenselicense HasContactcontact$fHasDescriptionInfoMaybe$fHasContactInfoMaybe$fHasLicenseInfoMaybe$fHasTermsOfServiceInfoMaybe$fHasTitleInfoText$fHasVersionInfoTextHasNamenameHasEmailemail$fHasUrlContactMaybe$fHasEmailContactMaybe$fHasNameContactMaybe$fHasUrlLicenseMaybe$fHasNameLicenseTextHasTracetrace HasSummarysummaryHasPutputHasPostpostHasPatchpatch HasOptionsoptionsHasHeadhead_HasGetget HasDeletedelete$fHasServersPathItem[]$fHasParametersPathItem[]$fHasDescriptionPathItemMaybe$fHasDeletePathItemMaybe$fHasGetPathItemMaybe$fHasHeadPathItemMaybe$fHasOptionsPathItemMaybe$fHasPatchPathItemMaybe$fHasPostPathItemMaybe$fHasPutPathItemMaybe$fHasSummaryPathItemMaybe$fHasTracePathItemMaybe$fHasNameTagText$fHasExternalDocsTagMaybe$fHasDescriptionTagMaybeHasRequestBody requestBodyHasOperationId operationId HasDeprecated deprecated$fHasTagsOperationInsOrdHashSet$fHasSummaryOperationMaybe$fHasServersOperation[]$fHasSecurityOperation[] $fHasResponsesOperationResponses$fHasParametersOperation[]$fHasExternalDocsOperationMaybe$fHasDescriptionOperationMaybe$$fHasCallbacksOperationInsOrdHashMap$fHasDeprecatedOperationMaybe$fHasOperationIdOperationMaybe$fHasRequestBodyOperationMaybeHasStylestyleHasInin_ HasExplodeexplodeHasAllowReserved allowReservedHasAllowEmptyValueallowEmptyValue$fHasSchemaParamMaybe$fHasRequiredParamMaybe$fHasNameParamText$fHasExamplesParamInsOrdHashMap$fHasExampleParamMaybe$fHasDescriptionParamMaybe$fHasDeprecatedParamMaybe$fHasAllowEmptyValueParamMaybe$fHasAllowReservedParamMaybe$fHasExplodeParamMaybe$fHasInParamParamLocation$fHasStyleParamMaybe$fHasSchemaHeaderMaybe$fHasRequiredHeaderMaybe$fHasExplodeHeaderMaybe $fHasExamplesHeaderInsOrdHashMap$fHasExampleHeaderMaybe$fHasDescriptionHeaderMaybe$fHasDeprecatedHeaderMaybe$fHasAllowEmptyValueHeaderMaybeHasXmlxml HasWriteOnly writeOnlyHasUniqueItems uniqueItemsHasTypetype_ HasReadOnlyreadOnly HasProperties properties HasPatternpatternHasOneOfoneOf HasNullablenullableHasNotnot_ HasMultipleOf multipleOf HasMinimumminimum_HasMinProperties minProperties HasMinLength minLength HasMinItemsminItems HasMaximummaximum_HasMaxProperties maxProperties HasMaxLength maxLength HasMaxItemsmaxItemsHasItemsitems HasFormatformatHasExclusiveMinimumexclusiveMinimumHasExclusiveMaximumexclusiveMaximumHasEnumenum_HasDiscriminator discriminator HasDefaultdefault_HasAnyOfanyOfHasAllOfallOfHasAdditionalPropertiesadditionalProperties$fHasTitleSchemaMaybe$fHasRequiredSchema[]$fHasExternalDocsSchemaMaybe$fHasExampleSchemaMaybe$fHasDescriptionSchemaMaybe$fHasDeprecatedSchemaMaybe$$fHasAdditionalPropertiesSchemaMaybe$fHasAllOfSchemaMaybe$fHasAnyOfSchemaMaybe$fHasDefaultSchemaMaybe$fHasDiscriminatorSchemaMaybe$fHasEnumSchemaMaybe $fHasExclusiveMaximumSchemaMaybe $fHasExclusiveMinimumSchemaMaybe$fHasFormatSchemaMaybe$fHasItemsSchemaMaybe$fHasMaxItemsSchemaMaybe$fHasMaxLengthSchemaMaybe$fHasMaxPropertiesSchemaMaybe$fHasMaximumSchemaMaybe$fHasMinItemsSchemaMaybe$fHasMinLengthSchemaMaybe$fHasMinPropertiesSchemaMaybe$fHasMinimumSchemaMaybe$fHasMultipleOfSchemaMaybe$fHasNotSchemaMaybe$fHasNullableSchemaMaybe$fHasOneOfSchemaMaybe$fHasPatternSchemaMaybe"$fHasPropertiesSchemaInsOrdHashMap$fHasReadOnlySchemaMaybe$fHasTypeSchemaMaybe$fHasUniqueItemsSchemaMaybe$fHasWriteOnlySchemaMaybe$fHasXmlSchemaMaybe$fHasSchemaNamedSchemaSchema$fHasNameNamedSchemaMaybe HasWrappedwrapped HasPrefixprefix HasNamespace namespace HasAttribute attribute$fHasNameXmlMaybe$fHasAttributeXmlMaybe$fHasNamespaceXmlMaybe$fHasPrefixXmlMaybe$fHasWrappedXmlMaybe$$fHasResponsesResponsesInsOrdHashMap$fHasDefaultResponsesMaybe$fHasLinksResponseInsOrdHashMap!$fHasHeadersResponseInsOrdHashMap$fHasDescriptionResponseText!$fHasContentResponseInsOrdHashMap)$fHasTypeSecuritySchemeSecuritySchemeType#$fHasDescriptionSecuritySchemeMaybeHasAuthorizationUrlauthorizationUrl+$fHasAuthorizationUrlOAuth2ImplicitFlowText HasTokenUrltokenUrl#$fHasTokenUrlOAuth2PasswordFlowText,$fHasTokenUrlOAuth2ClientCredentialsFlowText,$fHasTokenUrlOAuth2AuthorizationCodeFlowText4$fHasAuthorizationUrlOAuth2AuthorizationCodeFlowText HasPasswordpassword HasImplicitimplicitHasClientCredentialsclientCredentialsHasAuthorizationCodeauthorizationCode&$fHasAuthorizationCodeOAuth2FlowsMaybe&$fHasClientCredentialsOAuth2FlowsMaybe$fHasImplicitOAuth2FlowsMaybe$fHasPasswordOAuth2FlowsMaybe$fHasUrlExternalDocsURL!$fHasDescriptionExternalDocsMaybeHasContentType contentType$fHasStyleEncodingMaybe!$fHasHeadersEncodingInsOrdHashMap$fHasExplodeEncodingMaybe$fHasAllowReservedEncodingMaybe$fHasContentTypeEncodingMaybeHasValuevalueHasExternalValue externalValue$fHasSummaryExampleMaybe$fHasDescriptionExampleMaybe$fHasExternalValueExampleMaybe$fHasValueExampleMaybeHasPropertyName propertyName HasMappingmapping&$fHasMappingDiscriminatorInsOrdHashMap"$fHasPropertyNameDiscriminatorText HasServerserverHasOperationRef operationRef$fHasRequestBodyLinkMaybe $fHasParametersLinkInsOrdHashMap$fHasOperationIdLinkMaybe$fHasDescriptionLinkMaybe$fHasOperationRefLinkMaybe$fHasServerLinkMaybe_SecuritySchemeHttp_SecuritySchemeApiKey_SecuritySchemeOAuth2_SecuritySchemeOpenIdConnect_Ref_Inline_OpenApiItemsArray_OpenApiItemsObject$fHasMultipleOfsMaybe$fHasEnumsMaybe$fHasUniqueItemssMaybe$fHasMinItemssMaybe$fHasMaxItemssMaybe$fHasPatternsMaybe$fHasMinLengthsMaybe$fHasMaxLengthsMaybe$fHasExclusiveMinimumsMaybe$fHasMinimumsMaybe$fHasExclusiveMaximumsMaybe$fHasMaximumsMaybe$fHasItemssMaybe$fHasFormatsMaybe$fHasTypeNamedSchemaMaybe $fAtOperation$fIxedOperation $fAtResponses$fIxedResponses#$fLabelOptic"tags"kOpenApiOpenApiab&$fLabelOptic"servers"kOpenApiOpenApiab'$fLabelOptic"security"kOpenApiOpenApiab$$fLabelOptic"paths"kOpenApiOpenApiab&$fLabelOptic"openapi"kOpenApiOpenApiab#$fLabelOptic"info"kOpenApiOpenApiab+$fLabelOptic"externalDocs"kOpenApiOpenApiab)$fLabelOptic"components"kOpenApiOpenApiab4$fLabelOptic"securitySchemes"kComponentsComponentsab,$fLabelOptic"schemas"kComponentsComponentsab.$fLabelOptic"responses"kComponentsComponentsab2$fLabelOptic"requestBodies"kComponentsComponentsab/$fLabelOptic"parameters"kComponentsComponentsab*$fLabelOptic"links"kComponentsComponentsab,$fLabelOptic"headers"kComponentsComponentsab-$fLabelOptic"examples"kComponentsComponentsab.$fLabelOptic"callbacks"kComponentsComponentsab&$fLabelOptic"variables"kServerServerab $fLabelOptic"url"kServerServerab($fLabelOptic"description"kServerServerab1$fLabelOptic"enum"kServerVariableServerVariableab8$fLabelOptic"description"kServerVariableServerVariableab4$fLabelOptic"default"kServerVariableServerVariableab/$fLabelOptic"required"kRequestBodyRequestBodyab2$fLabelOptic"description"kRequestBodyRequestBodyab.$fLabelOptic"content"kRequestBodyRequestBodyab5$fLabelOptic"schema"kMediaTypeObjectMediaTypeObjectab7$fLabelOptic"examples"kMediaTypeObjectMediaTypeObjectab6$fLabelOptic"example"kMediaTypeObjectMediaTypeObjectab7$fLabelOptic"encoding"kMediaTypeObjectMediaTypeObjectab $fLabelOptic"version"kInfoInfoab$fLabelOptic"title"kInfoInfoab'$fLabelOptic"termsOfService"kInfoInfoab $fLabelOptic"license"kInfoInfoab$$fLabelOptic"description"kInfoInfoab $fLabelOptic"contact"kInfoInfoab"$fLabelOptic"url"kContactContactab#$fLabelOptic"name"kContactContactab$$fLabelOptic"email"kContactContactab"$fLabelOptic"url"kLicenseLicenseab#$fLabelOptic"name"kLicenseLicenseab&$fLabelOptic"trace"kPathItemPathItemab($fLabelOptic"summary"kPathItemPathItemab($fLabelOptic"servers"kPathItemPathItemab$$fLabelOptic"put"kPathItemPathItemab%$fLabelOptic"post"kPathItemPathItemab&$fLabelOptic"patch"kPathItemPathItemab+$fLabelOptic"parameters"kPathItemPathItemab($fLabelOptic"options"kPathItemPathItemab%$fLabelOptic"head"kPathItemPathItemab$$fLabelOptic"get"kPathItemPathItemab,$fLabelOptic"description"kPathItemPathItemab'$fLabelOptic"delete"kPathItemPathItemab$fLabelOptic"name"kTagTagab#$fLabelOptic"externalDocs"kTagTagab"$fLabelOptic"description"kTagTagab'$fLabelOptic"tags"kOperationOperationab*$fLabelOptic"summary"kOperationOperationab*$fLabelOptic"servers"kOperationOperationab+$fLabelOptic"security"kOperationOperationab,$fLabelOptic"responses"kOperationOperationab.$fLabelOptic"requestBody"kOperationOperationab-$fLabelOptic"parameters"kOperationOperationab.$fLabelOptic"operationId"kOperationOperationab/$fLabelOptic"externalDocs"kOperationOperationab.$fLabelOptic"description"kOperationOperationab-$fLabelOptic"deprecated"kOperationOperationab,$fLabelOptic"callbacks"kOperationOperationab $fLabelOptic"style"kParamParamab!$fLabelOptic"schema"kParamParamab#$fLabelOptic"required"kParamParamab$fLabelOptic"name"kParamParamab$fLabelOptic"in"kParamParamab"$fLabelOptic"explode"kParamParamab#$fLabelOptic"examples"kParamParamab"$fLabelOptic"example"kParamParamab&$fLabelOptic"description"kParamParamab%$fLabelOptic"deprecated"kParamParamab($fLabelOptic"allowReserved"kParamParamab*$fLabelOptic"allowEmptyValue"kParamParamab#$fLabelOptic"schema"kHeaderHeaderab%$fLabelOptic"required"kHeaderHeaderab$$fLabelOptic"explode"kHeaderHeaderab%$fLabelOptic"examples"kHeaderHeaderab$$fLabelOptic"example"kHeaderHeaderab($fLabelOptic"description"kHeaderHeaderab'$fLabelOptic"deprecated"kHeaderHeaderab,$fLabelOptic"allowEmptyValue"kHeaderHeaderab $fLabelOptic"xml"kSchemaSchemaab&$fLabelOptic"writeOnly"kSchemaSchemaab($fLabelOptic"uniqueItems"kSchemaSchemaab!$fLabelOptic"type"kSchemaSchemaab"$fLabelOptic"title"kSchemaSchemaab%$fLabelOptic"required"kSchemaSchemaab%$fLabelOptic"readOnly"kSchemaSchemaab'$fLabelOptic"properties"kSchemaSchemaab$$fLabelOptic"pattern"kSchemaSchemaab"$fLabelOptic"oneOf"kSchemaSchemaab%$fLabelOptic"nullable"kSchemaSchemaab $fLabelOptic"not"kSchemaSchemaab'$fLabelOptic"multipleOf"kSchemaSchemaab$$fLabelOptic"minimum"kSchemaSchemaab*$fLabelOptic"minProperties"kSchemaSchemaab&$fLabelOptic"minLength"kSchemaSchemaab%$fLabelOptic"minItems"kSchemaSchemaab$$fLabelOptic"maximum"kSchemaSchemaab*$fLabelOptic"maxProperties"kSchemaSchemaab&$fLabelOptic"maxLength"kSchemaSchemaab%$fLabelOptic"maxItems"kSchemaSchemaab"$fLabelOptic"items"kSchemaSchemaab#$fLabelOptic"format"kSchemaSchemaab)$fLabelOptic"externalDocs"kSchemaSchemaab-$fLabelOptic"exclusiveMinimum"kSchemaSchemaab-$fLabelOptic"exclusiveMaximum"kSchemaSchemaab$$fLabelOptic"example"kSchemaSchemaab!$fLabelOptic"enum"kSchemaSchemaab*$fLabelOptic"discriminator"kSchemaSchemaab($fLabelOptic"description"kSchemaSchemaab'$fLabelOptic"deprecated"kSchemaSchemaab$$fLabelOptic"default"kSchemaSchemaab"$fLabelOptic"anyOf"kSchemaSchemaab"$fLabelOptic"allOf"kSchemaSchemaab1$fLabelOptic"additionalProperties"kSchemaSchemaab-$fLabelOptic"schema"kNamedSchemaNamedSchemaab+$fLabelOptic"name"kNamedSchemaNamedSchemaab$fLabelOptic"wrapped"kXmlXmlab$fLabelOptic"prefix"kXmlXmlab $fLabelOptic"namespace"kXmlXmlab$fLabelOptic"name"kXmlXmlab $fLabelOptic"attribute"kXmlXmlab,$fLabelOptic"responses"kResponsesResponsesab*$fLabelOptic"default"kResponsesResponsesab&$fLabelOptic"links"kResponseResponseab($fLabelOptic"headers"kResponseResponseab,$fLabelOptic"description"kResponseResponseab($fLabelOptic"content"kResponseResponseab1$fLabelOptic"type"kSecuritySchemeSecuritySchemeab8$fLabelOptic"description"kSecuritySchemeSecuritySchemeabÅ$fLabelOptic"authorizationUrl"kOAuth2ImplicitFlowOAuth2ImplicitFlowab=$fLabelOptic"tokenUrl"kOAuth2PasswordFlowOAuth2PasswordFlowabÏ$fLabelOptic"tokenUrl"kOAuth2ClientCredentialsFlowOAuth2ClientCredentialsFlowabÏ$fLabelOptic"tokenUrl"kOAuth2AuthorizationCodeFlowOAuth2AuthorizationCodeFlowab×$fLabelOptic"authorizationUrl"kOAuth2AuthorizationCodeFlowOAuth2AuthorizationCodeFlowab/$fLabelOptic"password"kOAuth2FlowsOAuth2Flowsab/$fLabelOptic"implicit"kOAuth2FlowsOAuth2Flowsab8$fLabelOptic"clientCredentials"kOAuth2FlowsOAuth2Flowsab8$fLabelOptic"authorizationCode"kOAuth2FlowsOAuth2Flowsab,$fLabelOptic"url"kExternalDocsExternalDocsab4$fLabelOptic"description"kExternalDocsExternalDocsab&$fLabelOptic"style"kEncodingEncodingab($fLabelOptic"headers"kEncodingEncodingab($fLabelOptic"explode"kEncodingEncodingab,$fLabelOptic"contentType"kEncodingEncodingab.$fLabelOptic"allowReserved"kEncodingEncodingab$$fLabelOptic"value"kExampleExampleab&$fLabelOptic"summary"kExampleExampleab,$fLabelOptic"externalValue"kExampleExampleab*$fLabelOptic"description"kExampleExampleab7$fLabelOptic"propertyName"kDiscriminatorDiscriminatorab2$fLabelOptic"mapping"kDiscriminatorDiscriminatorab$fLabelOptic"server"kLinkLinkab$$fLabelOptic"requestBody"kLinkLinkab#$fLabelOptic"parameters"kLinkLinkab%$fLabelOptic"operationRef"kLinkLinkab$$fLabelOptic"operationId"kLinkLinkab$$fLabelOptic"description"kLinkLinkabÑ$fLabelOptic"_SecuritySchemeOpenIdConnect"kSecuritySchemeTypeSecuritySchemeTypeabÊ$fLabelOptic"_SecuritySchemeOAuth2"kSecuritySchemeTypeSecuritySchemeTypeabÊ$fLabelOptic"_SecuritySchemeApiKey"kSecuritySchemeTypeSecuritySchemeTypeabÈ$fLabelOptic"_SecuritySchemeHttp"kSecuritySchemeTypeSecuritySchemeTypeab6$fLabelOptic"multipleOf"A_LensNamedSchemaNamedSchemaab0$fLabelOptic"enum"A_LensNamedSchemaNamedSchemaab7$fLabelOptic"uniqueItems"A_LensNamedSchemaNamedSchemaab4$fLabelOptic"minItems"A_LensNamedSchemaNamedSchemaab4$fLabelOptic"maxItems"A_LensNamedSchemaNamedSchemaab3$fLabelOptic"pattern"A_LensNamedSchemaNamedSchemaab5$fLabelOptic"minLength"A_LensNamedSchemaNamedSchemaab5$fLabelOptic"maxLength"A_LensNamedSchemaNamedSchemaab<$fLabelOptic"exclusiveMinimum"A_LensNamedSchemaNamedSchemaab3$fLabelOptic"minimum"A_LensNamedSchemaNamedSchemaab<$fLabelOptic"exclusiveMaximum"A_LensNamedSchemaNamedSchemaab3$fLabelOptic"maximum"A_LensNamedSchemaNamedSchemaab1$fLabelOptic"items"A_LensNamedSchemaNamedSchemaab2$fLabelOptic"format"A_LensNamedSchemaNamedSchemaab3$fLabelOptic"default"A_LensNamedSchemaNamedSchemaab0$fLabelOptic"type"A_LensNamedSchemaNamedSchemaabÃ$fLabelOptic"_OpenApiItemsObject"A_ReviewOpenApiItemsOpenApiItemsabÂ$fLabelOptic"_OpenApiItemsArray"A_ReviewOpenApiItemsOpenApiItemsab,$fLabelOptic"_Inline"kReferencedReferencedab)$fLabelOptic"_Ref"kReferencedReferencedab SchemaOptionsfieldLabelModifierconstructorTagModifierdatatypeNameModifierallNullaryToStringTagunwrapUnaryRecords sumEncodingdefaultSchemaOptionsfromAesonOptionsProxy3GEnumParamSchemagenumParamSchemaGToParamSchemagtoParamSchemaToParamSchemaByteStringError ToParamSchema toParamSchema binarySchema byteSchemapasswordSchematoParamSchemaBoundedIntegraltimeParamSchemagenericToParamSchema$fGToParamSchemaM1$fGToParamSchemaM10$fGToParamSchemaK1$fToParamSchemaUUID$fToParamSchema()$fToParamSchemaHashSet$fToParamSchemaSet$fToParamSchemaVector$fToParamSchemaVector0$fToParamSchemaVector1$fToParamSchemaVector2$fToParamSchema[]$fToParamSchemaIdentity$fToParamSchemaDual$fToParamSchemaLast$fToParamSchemaFirst$fToParamSchemaProduct$fToParamSchemaSum$fToParamSchemaAny$fToParamSchemaAll$fToParamSchemaSetCookie$fToParamSchemaVersion$fToParamSchemaText$fToParamSchemaText0$fToParamSchemaNominalDiffTime$fToParamSchemaUTCTime$fToParamSchemaZonedTime$fToParamSchemaLocalTime$fToParamSchemaTimeOfDay$fToParamSchemaDay$fToParamSchemaFloat$fToParamSchemaDouble$fToParamSchemaFixed$fToParamSchemaScientific$fToParamSchemaChar$fToParamSchemaWord64$fToParamSchemaWord32$fToParamSchemaWord16$fToParamSchemaWord8$fToParamSchemaWord$fToParamSchemaInt64$fToParamSchemaInt32$fToParamSchemaInt16$fToParamSchemaInt8$fToParamSchemaInt$fToParamSchemaNatural$fToParamSchemaInteger$fToParamSchemaBool$fToParamSchema[]0$fToParamSchemaByteString$fToParamSchemaByteString0$fGEnumParamSchema:+:$fGToParamSchema:+:$fGToParamSchemaM11$fGEnumParamSchemaM1Proxy2 GSumToSchema gsumToSchema AllNullaryToSchemaByteStringError GToSchemagdeclareNamedSchemaToSchemadeclareNamedSchemaunnamednamedplainunnamerename declareSchema toNamedSchema schemaNametoSchema toSchemaRefdeclareSchemaRefinlineSchemasWhen inlineSchemasinlineAllSchemastoInlinedSchemainlineNonRecursiveSchemas sketchSchemasketchStrictSchema timeSchematoSchemaBoundedIntegral#genericToNamedSchemaBoundedIntegral genericDeclareNamedSchemaNewtype"declareSchemaBoundedEnumKeyMappingtoSchemaBoundedEnumKeyMappinggenericDeclareSchemagenericDeclareNamedSchemagenericNameSchemagdatatypeSchemaNameparamSchemaToNamedSchemaparamSchemaToSchema nullarySchemagtoNamedSchemagdeclareSchemagdeclareSchemaRef appendItemwithFieldSchemagdeclareNamedSumSchemagsumConToSchemaWithgsumConToSchema $fGToSchemaM1$fGToSchemaM10$fGToSchemaM11$fGToSchemaM12$fGToSchema:*: $fGToSchemaK1$fGToSchemaK10$fToSchemaIdentity$fToSchemaDual$fToSchemaLast$fToSchemaFirst$fToSchemaProduct $fToSchemaSum $fToSchemaAny $fToSchemaAll$fToSchemaNonEmpty$fToSchemaHashSet $fToSchemaSet$fToSchemaVector$fToSchemaVector0$fToSchemaVector1$fToSchemaVector2$fToSchemaKeyMap$fToSchemaHashMap $fToSchemaMap$fToSchemaIntMap$fToSchemaIntSet$fToSchemaVersion$fToSchemaText$fToSchemaText0$fToSchemaUTCTime$fToSchemaNominalDiffTime$fToSchemaZonedTime$fToSchemaLocalTime $fToSchemaDay$fToSchema(,,,,,,)$fToSchema(,,,,,)$fToSchema(,,,,)$fToSchema(,,,)$fToSchema(,,) $fToSchema(,)$fToSchemaUUID $fToSchema()$fToSchemaEither$fToSchemaMaybe$fToSchemaFixed$fToSchemaFloat$fToSchemaDouble$fToSchemaScientific$fToSchemaChar$fToSchemaWord64$fToSchemaWord32$fToSchemaWord16$fToSchemaWord8$fToSchemaWord$fToSchemaInt64$fToSchemaInt32$fToSchemaInt16$fToSchemaInt8 $fToSchemaInt$fToSchemaNatural$fToSchemaInteger$fToSchemaBool $fToSchema[] $fToSchema[]0$fToSchemaTimeOfDay$fToSchemaByteString$fToSchemaByteString0$fGSumToSchemaM1$fGSumToSchemaM10$fGSumToSchemaM11$fGSumToSchema:+:$fGToSchema:+:$fGToSchemaM13$fGToSchemaM14 prependPath allOperations operationsOf applyTags applyTagsFordeclareResponse setResponsesetResponseWithsetResponseForsetResponseForWith Validation runValidationConfigconfigPatternCheckerconfigDefinitionsResultFailedPassedValidationErrorvalidatePrettyToJSONvalidateToJSON validateToJSONWithPatternCheckerrenderValidationErrors validateJSONvalidateJSONWithPatternChecker defaultConfig withConfig withSchemainvalidvalid checkMissingchecksubsub_withRefvalidateWithSchemaRefvalidateWithSchemavalidateIntegervalidateNumbervalidateString validateArrayvalidateObject validateEnuminferSchemaTypesinferParamSchemaTypesvalidateSchemaTypevalidateParamSchemaTypeshowType $fMonadResult$fAlternativeResult$fApplicativeResult$fMonadValidation$fChoiceValidation$fProfunctorValidation$fAlternativeValidation$fApplicativeValidation$fFunctorValidation $fEqResult $fShowResult$fFunctorResult schemaGen dereferencegenValuevalidateFromJSONbaseGHC.Basefmapghc-prim GHC.TypesFalseTrue$aeson-2.2.1.0-6nT8VYDlCpY9bJbD0j0icFData.Aeson.Types.InternaldefaultTaggedObjectOptionsomitNothingFieldstagSingleConstructors!text-2.0.2-KGnmUbHThn64lGLbxWtdU3Data.Text.InternalText Data.Text.Lazy.Builder.RealFloatFPFormatGHC.EnumBoundedGHC.RealIntegralcontainers-0.6.5.1Data.Map.InternalMap4unordered-containers-0.2.19.1-JbpOzHej2iR1Spg00XvK4uData.HashMap.InternalHashMap GHC.GenericsGenericData.Aeson.Types.ToJSONToJSONEnum ToJSONKeyTextToJSONKeyValueData.Typeable.InternalTypeableGHC.Errerror