51 lines
1.2 KiB
Python
51 lines
1.2 KiB
Python
|
from typing import Optional
|
||
|
|
||
|
from pydantic import BaseModel
|
||
|
|
||
|
from openapi_pydantic.compat import PYDANTIC_V2, ConfigDict, Extra
|
||
|
|
||
|
_examples = [
|
||
|
{"name": "Apache 2.0", "identifier": "Apache-2.0"},
|
||
|
{
|
||
|
"name": "Apache 2.0",
|
||
|
"url": "https://www.apache.org/licenses/LICENSE-2.0.html",
|
||
|
},
|
||
|
]
|
||
|
|
||
|
|
||
|
class License(BaseModel):
|
||
|
"""
|
||
|
License information for the exposed API.
|
||
|
"""
|
||
|
|
||
|
name: str
|
||
|
"""
|
||
|
**REQUIRED**. The license name used for the API.
|
||
|
"""
|
||
|
|
||
|
identifier: Optional[str] = None
|
||
|
"""
|
||
|
An [SPDX](https://spdx.org/spdx-specification-21-web-version#h.jxpfx0ykyb60)
|
||
|
license expression for the API. The `identifier` field is mutually exclusive of the
|
||
|
`url` field.
|
||
|
"""
|
||
|
|
||
|
url: Optional[str] = None
|
||
|
"""
|
||
|
A URL to the license used for the API.
|
||
|
This MUST be in the form of a URL.
|
||
|
The `url` field is mutually exclusive of the `identifier` field.
|
||
|
"""
|
||
|
|
||
|
if PYDANTIC_V2:
|
||
|
model_config = ConfigDict(
|
||
|
extra="allow",
|
||
|
json_schema_extra={"examples": _examples},
|
||
|
)
|
||
|
|
||
|
else:
|
||
|
|
||
|
class Config:
|
||
|
extra = Extra.allow
|
||
|
schema_extra = {"examples": _examples}
|