From 82a6ca19763d3ac772d8e7da4e5621bedbe5b557 Mon Sep 17 00:00:00 2001 From: mike-gangl Date: Thu, 9 May 2024 09:28:13 -0700 Subject: [PATCH 1/2] added authentication to openapi spec for bearer authentication --- .openapi-generator/FILES | 1 - README.md | 101 +- docs/DefaultApi.md | 144 +- openapi.json | 1518 ++++++++++++++++- poetry.lock | 614 +++++++ .../api/default_api.py | 12 + .../configuration.py | 9 + 7 files changed, 2342 insertions(+), 57 deletions(-) create mode 100644 poetry.lock diff --git a/.openapi-generator/FILES b/.openapi-generator/FILES index 1b87cc6..72232b1 100644 --- a/.openapi-generator/FILES +++ b/.openapi-generator/FILES @@ -1,7 +1,6 @@ .github/workflows/python.yml .gitignore .gitlab-ci.yml -.openapi-generator-ignore .travis.yml README.md docs/Bbox.md diff --git a/README.md b/README.md index d6ecab0..af46390 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,4 @@ # unity-sps-ogc-processes-api-python-client - This document is an API definition document provided alongside the OGC API - Processes standard. The OGC API - Processes Standard specifies a processing interface to communicate over a RESTful protocol using JavaScript Object Notation (JSON) encodings. The specification allows for the wrapping of computational tasks into executable processes that can be offered by a server and be invoked by a client application. This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: @@ -9,12 +8,11 @@ This Python package is automatically generated by the [OpenAPI Generator](https: - Generator version: 7.5.0 - Build package: org.openapitools.codegen.languages.PythonClientCodegen -## Requirements +## Requirements. Python 3.7+ ## Installation & Usage - ### pip install If the python package is hosted on a repository, you can install directly using: @@ -22,11 +20,9 @@ If the python package is hosted on a repository, you can install directly using: ```sh pip install git+https://github.com/GIT_USER_ID/GIT_REPO_ID.git ``` - (you may need to run `pip` with root permission: `sudo pip install git+https://github.com/GIT_USER_ID/GIT_REPO_ID.git`) Then import the package: - ```python import unity_sps_ogc_processes_api_python_client ``` @@ -38,11 +34,9 @@ Install via [Setuptools](http://pypi.python.org/pypi/setuptools). ```sh python setup.py install --user ``` - (or `sudo python setup.py install` to install the package for all users) Then import the package: - ```python import unity_sps_ogc_processes_api_python_client ``` @@ -67,6 +61,16 @@ configuration = unity_sps_ogc_processes_api_python_client.Configuration( host = "http://localhost" ) +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): bearerAuth +configuration = unity_sps_ogc_processes_api_python_client.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + # Enter a context with an instance of the API client with unity_sps_ogc_processes_api_python_client.ApiClient(configuration) as api_client: @@ -85,7 +89,7 @@ with unity_sps_ogc_processes_api_python_client.ApiClient(configuration) as api_c ## Documentation for API Endpoints -All URIs are relative to ** +All URIs are relative to *http://localhost* Class | Method | HTTP request | Description ------------ | ------------- | ------------- | ------------- @@ -102,46 +106,57 @@ Class | Method | HTTP request | Description *DefaultApi* | [**status_jobs_job_id_get**](docs/DefaultApi.md#status_jobs_job_id_get) | **GET** /jobs/{job_id} | Retrieve the status of a job *DefaultApi* | [**unregister_process_processes_process_id_delete**](docs/DefaultApi.md#unregister_process_processes_process_id_delete) | **DELETE** /processes/{process_id} | Unregister a process + ## Documentation For Models -- [Bbox](docs/Bbox.md) -- [ConfClasses](docs/ConfClasses.md) -- [Crs](docs/Crs.md) -- [Crs5](docs/Crs5.md) -- [Detail](docs/Detail.md) -- [Exception](docs/Exception.md) -- [Execute](docs/Execute.md) -- [HTTPValidationError](docs/HTTPValidationError.md) -- [HealthCheck](docs/HealthCheck.md) -- [InputValueInput](docs/InputValueInput.md) -- [InputValueNoObjectInput](docs/InputValueNoObjectInput.md) -- [InputValueNoObjectOutput](docs/InputValueNoObjectOutput.md) -- [InputValueOutput](docs/InputValueOutput.md) -- [Instance](docs/Instance.md) -- [JobControlOptions](docs/JobControlOptions.md) -- [JobList](docs/JobList.md) -- [LandingPage](docs/LandingPage.md) -- [Link](docs/Link.md) -- [Metadata](docs/Metadata.md) -- [Metadata1](docs/Metadata1.md) -- [Metadata2](docs/Metadata2.md) -- [ProcessInput](docs/ProcessInput.md) -- [ProcessList](docs/ProcessList.md) -- [ProcessOutput](docs/ProcessOutput.md) -- [ProcessSummary](docs/ProcessSummary.md) -- [Status](docs/Status.md) -- [StatusCode](docs/StatusCode.md) -- [StatusInfo](docs/StatusInfo.md) -- [Subscriber](docs/Subscriber.md) -- [Title](docs/Title.md) -- [ValidationError](docs/ValidationError.md) -- [ValidationErrorLocInner](docs/ValidationErrorLocInner.md) -- [Value](docs/Value.md) + - [Bbox](docs/Bbox.md) + - [ConfClasses](docs/ConfClasses.md) + - [Crs](docs/Crs.md) + - [Crs5](docs/Crs5.md) + - [Detail](docs/Detail.md) + - [Exception](docs/Exception.md) + - [Execute](docs/Execute.md) + - [HTTPValidationError](docs/HTTPValidationError.md) + - [HealthCheck](docs/HealthCheck.md) + - [InputValueInput](docs/InputValueInput.md) + - [InputValueNoObjectInput](docs/InputValueNoObjectInput.md) + - [InputValueNoObjectOutput](docs/InputValueNoObjectOutput.md) + - [InputValueOutput](docs/InputValueOutput.md) + - [Instance](docs/Instance.md) + - [JobControlOptions](docs/JobControlOptions.md) + - [JobList](docs/JobList.md) + - [LandingPage](docs/LandingPage.md) + - [Link](docs/Link.md) + - [Metadata](docs/Metadata.md) + - [Metadata1](docs/Metadata1.md) + - [Metadata2](docs/Metadata2.md) + - [ProcessInput](docs/ProcessInput.md) + - [ProcessList](docs/ProcessList.md) + - [ProcessOutput](docs/ProcessOutput.md) + - [ProcessSummary](docs/ProcessSummary.md) + - [Status](docs/Status.md) + - [StatusCode](docs/StatusCode.md) + - [StatusInfo](docs/StatusInfo.md) + - [Subscriber](docs/Subscriber.md) + - [Title](docs/Title.md) + - [ValidationError](docs/ValidationError.md) + - [ValidationErrorLocInner](docs/ValidationErrorLocInner.md) + - [Value](docs/Value.md) - + ## Documentation For Authorization -Endpoints do not require authorization. + +Authentication schemes defined for the API: + +### bearerAuth + +- **Type**: Bearer authentication (JWT) + ## Author + + + + diff --git a/docs/DefaultApi.md b/docs/DefaultApi.md index 03c8c29..ae9844b 100644 --- a/docs/DefaultApi.md +++ b/docs/DefaultApi.md @@ -27,6 +27,7 @@ A list of all conformance classes, specified in a standard, that the server conf ### Example +* Bearer (JWT) Authentication (bearerAuth): ```python import unity_sps_ogc_processes_api_python_client @@ -40,6 +41,15 @@ configuration = unity_sps_ogc_processes_api_python_client.Configuration( host = "http://localhost" ) +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): bearerAuth +configuration = unity_sps_ogc_processes_api_python_client.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) # Enter a context with an instance of the API client with unity_sps_ogc_processes_api_python_client.ApiClient(configuration) as api_client: @@ -67,7 +77,7 @@ This endpoint does not need any parameter. ### Authorization -No authorization required +[bearerAuth](../README.md#bearerAuth) ### HTTP request headers @@ -91,6 +101,7 @@ Cancel a job execution and remove it from the jobs list. For more information, ### Example +* Bearer (JWT) Authentication (bearerAuth): ```python import unity_sps_ogc_processes_api_python_client @@ -104,6 +115,15 @@ configuration = unity_sps_ogc_processes_api_python_client.Configuration( host = "http://localhost" ) +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): bearerAuth +configuration = unity_sps_ogc_processes_api_python_client.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) # Enter a context with an instance of the API client with unity_sps_ogc_processes_api_python_client.ApiClient(configuration) as api_client: @@ -135,7 +155,7 @@ Name | Type | Description | Notes ### Authorization -No authorization required +[bearerAuth](../README.md#bearerAuth) ### HTTP request headers @@ -160,6 +180,7 @@ Create a new job. For more information, see [Section 7.11](https://docs.ogc.org ### Example +* Bearer (JWT) Authentication (bearerAuth): ```python import unity_sps_ogc_processes_api_python_client @@ -174,6 +195,15 @@ configuration = unity_sps_ogc_processes_api_python_client.Configuration( host = "http://localhost" ) +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): bearerAuth +configuration = unity_sps_ogc_processes_api_python_client.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) # Enter a context with an instance of the API client with unity_sps_ogc_processes_api_python_client.ApiClient(configuration) as api_client: @@ -207,7 +237,7 @@ Name | Type | Description | Notes ### Authorization -No authorization required +[bearerAuth](../README.md#bearerAuth) ### HTTP request headers @@ -232,6 +262,7 @@ Endpoint to perform a healthcheck on. This endpoint can primarily be used Docker ### Example +* Bearer (JWT) Authentication (bearerAuth): ```python import unity_sps_ogc_processes_api_python_client @@ -245,6 +276,15 @@ configuration = unity_sps_ogc_processes_api_python_client.Configuration( host = "http://localhost" ) +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): bearerAuth +configuration = unity_sps_ogc_processes_api_python_client.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) # Enter a context with an instance of the API client with unity_sps_ogc_processes_api_python_client.ApiClient(configuration) as api_client: @@ -272,7 +312,7 @@ This endpoint does not need any parameter. ### Authorization -No authorization required +[bearerAuth](../README.md#bearerAuth) ### HTTP request headers @@ -296,6 +336,7 @@ Lists available jobs. For more information, see [Section 11](https://docs.ogc.o ### Example +* Bearer (JWT) Authentication (bearerAuth): ```python import unity_sps_ogc_processes_api_python_client @@ -309,6 +350,15 @@ configuration = unity_sps_ogc_processes_api_python_client.Configuration( host = "http://localhost" ) +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): bearerAuth +configuration = unity_sps_ogc_processes_api_python_client.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) # Enter a context with an instance of the API client with unity_sps_ogc_processes_api_python_client.ApiClient(configuration) as api_client: @@ -336,7 +386,7 @@ This endpoint does not need any parameter. ### Authorization -No authorization required +[bearerAuth](../README.md#bearerAuth) ### HTTP request headers @@ -360,6 +410,7 @@ The landing page provides links to the: - API Definition (no fixed path), - Conf ### Example +* Bearer (JWT) Authentication (bearerAuth): ```python import unity_sps_ogc_processes_api_python_client @@ -373,6 +424,15 @@ configuration = unity_sps_ogc_processes_api_python_client.Configuration( host = "http://localhost" ) +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): bearerAuth +configuration = unity_sps_ogc_processes_api_python_client.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) # Enter a context with an instance of the API client with unity_sps_ogc_processes_api_python_client.ApiClient(configuration) as api_client: @@ -400,7 +460,7 @@ This endpoint does not need any parameter. ### Authorization -No authorization required +[bearerAuth](../README.md#bearerAuth) ### HTTP request headers @@ -424,6 +484,7 @@ The process description contains information about inputs and outputs and a link ### Example +* Bearer (JWT) Authentication (bearerAuth): ```python import unity_sps_ogc_processes_api_python_client @@ -437,6 +498,15 @@ configuration = unity_sps_ogc_processes_api_python_client.Configuration( host = "http://localhost" ) +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): bearerAuth +configuration = unity_sps_ogc_processes_api_python_client.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) # Enter a context with an instance of the API client with unity_sps_ogc_processes_api_python_client.ApiClient(configuration) as api_client: @@ -468,7 +538,7 @@ Name | Type | Description | Notes ### Authorization -No authorization required +[bearerAuth](../README.md#bearerAuth) ### HTTP request headers @@ -493,6 +563,7 @@ The list of processes contains a summary of each process the OGC API - Processes ### Example +* Bearer (JWT) Authentication (bearerAuth): ```python import unity_sps_ogc_processes_api_python_client @@ -506,6 +577,15 @@ configuration = unity_sps_ogc_processes_api_python_client.Configuration( host = "http://localhost" ) +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): bearerAuth +configuration = unity_sps_ogc_processes_api_python_client.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) # Enter a context with an instance of the API client with unity_sps_ogc_processes_api_python_client.ApiClient(configuration) as api_client: @@ -533,7 +613,7 @@ This endpoint does not need any parameter. ### Authorization -No authorization required +[bearerAuth](../README.md#bearerAuth) ### HTTP request headers @@ -557,6 +637,7 @@ Register a new process. **Note:** This is not an officially supported endpoint ### Example +* Bearer (JWT) Authentication (bearerAuth): ```python import unity_sps_ogc_processes_api_python_client @@ -571,6 +652,15 @@ configuration = unity_sps_ogc_processes_api_python_client.Configuration( host = "http://localhost" ) +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): bearerAuth +configuration = unity_sps_ogc_processes_api_python_client.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) # Enter a context with an instance of the API client with unity_sps_ogc_processes_api_python_client.ApiClient(configuration) as api_client: @@ -602,7 +692,7 @@ Name | Type | Description | Notes ### Authorization -No authorization required +[bearerAuth](../README.md#bearerAuth) ### HTTP request headers @@ -627,6 +717,7 @@ Lists available results of a job. In case of a failure, lists exceptions instead ### Example +* Bearer (JWT) Authentication (bearerAuth): ```python import unity_sps_ogc_processes_api_python_client @@ -639,6 +730,15 @@ configuration = unity_sps_ogc_processes_api_python_client.Configuration( host = "http://localhost" ) +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): bearerAuth +configuration = unity_sps_ogc_processes_api_python_client.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) # Enter a context with an instance of the API client with unity_sps_ogc_processes_api_python_client.ApiClient(configuration) as api_client: @@ -670,7 +770,7 @@ Name | Type | Description | Notes ### Authorization -No authorization required +[bearerAuth](../README.md#bearerAuth) ### HTTP request headers @@ -695,6 +795,7 @@ Shows the status of a job. For more information, see [Section 7.12](https://doc ### Example +* Bearer (JWT) Authentication (bearerAuth): ```python import unity_sps_ogc_processes_api_python_client @@ -708,6 +809,15 @@ configuration = unity_sps_ogc_processes_api_python_client.Configuration( host = "http://localhost" ) +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): bearerAuth +configuration = unity_sps_ogc_processes_api_python_client.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) # Enter a context with an instance of the API client with unity_sps_ogc_processes_api_python_client.ApiClient(configuration) as api_client: @@ -739,7 +849,7 @@ Name | Type | Description | Notes ### Authorization -No authorization required +[bearerAuth](../README.md#bearerAuth) ### HTTP request headers @@ -764,6 +874,7 @@ Unregister an existing process. **Note:** This is not an officially supported e ### Example +* Bearer (JWT) Authentication (bearerAuth): ```python import unity_sps_ogc_processes_api_python_client @@ -776,6 +887,15 @@ configuration = unity_sps_ogc_processes_api_python_client.Configuration( host = "http://localhost" ) +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): bearerAuth +configuration = unity_sps_ogc_processes_api_python_client.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) # Enter a context with an instance of the API client with unity_sps_ogc_processes_api_python_client.ApiClient(configuration) as api_client: @@ -805,7 +925,7 @@ void (empty response body) ### Authorization -No authorization required +[bearerAuth](../README.md#bearerAuth) ### HTTP request headers diff --git a/openapi.json b/openapi.json index d7f467e..536c33e 100644 --- a/openapi.json +++ b/openapi.json @@ -1 +1,1517 @@ -{"openapi":"3.1.0","info":{"title":"Unity Processing API conforming to the OGC API - Processes - Part 1 standard","description":"This document is an API definition document provided alongside the OGC API - Processes standard. The OGC API - Processes Standard specifies a processing interface to communicate over a RESTful protocol using JavaScript Object Notation (JSON) encodings. The specification allows for the wrapping of computational tasks into executable processes that can be offered by a server and be invoked by a client application.","version":"1.0.0"},"paths":{"/":{"get":{"summary":"Landing page of this API","description":"The landing page provides links to the:\n- API Definition (no fixed path),\n- Conformance Statements (`/conformance`),\n- Processes Metadata (`/processes`),\n- Endpoint for Job Monitoring (`/jobs`).\n\nFor more information, see [Section 7.2](https://docs.ogc.org/is/18-062r2/18-062r2.html#sc_landing_page).","operationId":"landing_page__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LandingPage"}}}}}}},"/health":{"get":{"summary":"Perform a Health Check","description":"Endpoint to perform a healthcheck on. This endpoint can primarily be used Docker\nto ensure a robust container orchestration and management is in place. Other\nservices which rely on proper functioning of the API service will not deploy if this\nendpoint returns any other HTTP status code except 200 (OK).\nReturns:\n HealthCheck: Returns a JSON response with the health status","operationId":"get_health_health_get","responses":{"200":{"description":"Return HTTP Status Code 200 (OK)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthCheck"}}}}}}},"/conformance":{"get":{"summary":"Information about standards that this API conforms to","description":"A list of all conformance classes, specified in a standard, that the server conforms to.\n\n| Conformance class | URI |\n| -------- | ------- |\n| Core | http://www.opengis.net/spec/ogcapi-processes-1/1.0/conf/core |\n| OGC Process Description | http://www.opengis.net/spec/ogcapi-processes-1/1.0/conf/ogc-process-description |\n| JSON | http://www.opengis.net/spec/ogcapi-processes-1/1.0/conf/json |\n| HTML | http://www.opengis.net/spec/ogcapi-processes-1/1.0/conf/html |\n| OpenAPI | Specification 3.0 http://www.opengis.net/spec/ogcapi-processes-1/1.0/conf/oas30 |\n| Job list | http://www.opengis.net/spec/ogcapi-processes-1/1.0/conf/job-list |\n| Callback | http://www.opengis.net/spec/ogcapi-processes-1/1.0/conf/callback |\n| Dismiss | http://www.opengis.net/spec/ogcapi-processes-1/1.0/conf/dismiss |\n\nFor more information, see [Section 7.4](https://docs.ogc.org/is/18-062r2/18-062r2.html#sc_conformance_classes).","operationId":"conformance_declaration_conformance_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfClasses"}}}}}}},"/processes":{"get":{"summary":"Retrieve the list of available processes","description":"The list of processes contains a summary of each process the OGC API - Processes offers, including the link to a more detailed description of the process.\n\nFor more information, see [Section 7.9](https://docs.ogc.org/is/18-062r2/18-062r2.html#sc_process_list).","operationId":"process_list_processes_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProcessList"}}}}}},"post":{"summary":"Register a process","description":"Register a new process.\n\n**Note:** This is not an officially supported endpoint in the OGC Processes specification.","operationId":"register_process_processes_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Process-Input"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Process-Output"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/processes/{process_id}":{"delete":{"summary":"Unregister a process","description":"Unregister an existing process.\n\n**Note:** This is not an officially supported endpoint in the OGC Processes specification.","operationId":"unregister_process_processes__process_id__delete","parameters":[{"name":"process_id","in":"path","required":true,"schema":{"type":"string","title":"Process Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"summary":"Retrieve a process description","description":"The process description contains information about inputs and outputs and a link to the execution-endpoint for the process. The Core does not mandate the use of a specific process description to specify the interface of a process. That said, the Core requirements class makes the following recommendation:\n\nImplementations SHOULD consider supporting the OGC process description.\n\nFor more information, see [Section 7.10](https://docs.ogc.org/is/18-062r2/18-062r2.html#sc_process_description).","operationId":"process_description_processes__process_id__get","parameters":[{"name":"process_id","in":"path","required":true,"schema":{"type":"string","title":"Process Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Process-Output"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/jobs":{"get":{"summary":"Retrieve the list of jobs","description":"Lists available jobs.\n\nFor more information, see [Section 11](https://docs.ogc.org/is/18-062r2/18-062r2.html#sc_job_list).","operationId":"job_list_jobs_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobList"}}}}}}},"/processes/{process_id}/execution":{"post":{"summary":"Execute a process","description":"Create a new job.\n\nFor more information, see [Section 7.11](https://docs.ogc.org/is/18-062r2/18-062r2.html#sc_create_job).","operationId":"execute_processes__process_id__execution_post","parameters":[{"name":"process_id","in":"path","required":true,"schema":{"type":"string","title":"Process Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Execute"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StatusInfo"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/jobs/{job_id}":{"get":{"summary":"Retrieve the status of a job","description":"Shows the status of a job.\n\nFor more information, see [Section 7.12](https://docs.ogc.org/is/18-062r2/18-062r2.html#sc_retrieve_status_info).","operationId":"status_jobs__job_id__get","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StatusInfo"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"summary":"Cancel a job execution, remove a finished job","description":"Cancel a job execution and remove it from the jobs list.\n\nFor more information, see [Section 13](https://docs.ogc.org/is/18-062r2/18-062r2.html#Dismiss).","operationId":"dismiss_jobs__job_id__delete","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StatusInfo"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/jobs/{job_id}/results":{"get":{"summary":"Retrieve the result(s) of a job","description":"Lists available results of a job. In case of a failure, lists exceptions instead.\n\nFor more information, see [Section 7.13](https://docs.ogc.org/is/18-062r2/18-062r2.html#sc_retrieve_job_results).","operationId":"results_jobs__job_id__results_get","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Results"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"Bbox":{"properties":{"bbox":{"items":{"type":"number"},"type":"array","title":"Bbox"},"crs":{"anyOf":[{"$ref":"#/components/schemas/Crs5"},{"type":"string","minLength":1,"format":"uri"},{"type":"null"}],"title":"Crs","default":"http://www.opengis.net/def/crs/OGC/1.3/CRS84"}},"type":"object","required":["bbox"],"title":"Bbox"},"BinaryInputValue":{"type":"string","title":"BinaryInputValue"},"ConfClasses":{"properties":{"conformsTo":{"items":{"type":"string"},"type":"array","title":"Conformsto"}},"type":"object","required":["conformsTo"],"title":"ConfClasses"},"Crs5":{"type":"string","enum":["http://www.opengis.net/def/crs/OGC/1.3/CRS84","http://www.opengis.net/def/crs/OGC/0/CRS84h"],"title":"Crs5"},"Exception":{"properties":{"type":{"type":"string","title":"Type"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"status":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Status"},"detail":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Detail"},"instance":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Instance"}},"additionalProperties":true,"type":"object","required":["type"],"title":"Exception"},"Execute":{"properties":{"inputs":{"anyOf":[{},{"type":"null"}],"title":"Inputs"},"outputs":{"anyOf":[{},{"type":"null"}],"title":"Outputs"},"subscriber":{"anyOf":[{"$ref":"#/components/schemas/Subscriber"},{"type":"null"}]}},"type":"object","title":"Execute"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HealthCheck":{"properties":{"status":{"type":"string","title":"Status","default":"OK"}},"type":"object","title":"HealthCheck","description":"Response model to validate and return when performing a health check."},"InputValue-Input":{"anyOf":[{"$ref":"#/components/schemas/InputValueNoObject-Input"},{"type":"object"}],"title":"InputValue"},"InputValue-Output":{"anyOf":[{"$ref":"#/components/schemas/InputValueNoObject-Output"},{"type":"object"}],"title":"InputValue"},"InputValueNoObject-Input":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"integer"},{"type":"boolean"},{"items":{},"type":"array"},{"$ref":"#/components/schemas/BinaryInputValue"},{"$ref":"#/components/schemas/Bbox"}],"title":"InputValueNoObject"},"InputValueNoObject-Output":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"integer"},{"type":"boolean"},{"items":{},"type":"array"},{"$ref":"#/components/schemas/BinaryInputValue"},{"$ref":"#/components/schemas/Bbox"}],"title":"InputValueNoObject"},"JobControlOptions":{"type":"string","enum":["sync-execute","async-execute","dismiss"],"title":"JobControlOptions"},"JobList":{"properties":{"jobs":{"items":{"$ref":"#/components/schemas/StatusInfo"},"type":"array","title":"Jobs"},"links":{"items":{"$ref":"#/components/schemas/Link"},"type":"array","title":"Links"}},"type":"object","required":["jobs","links"],"title":"JobList"},"LandingPage":{"properties":{"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title","example":"Example processing server"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","example":"Example server implementing the OGC API - Processes 1.0 Standard"},"attribution":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"attribution for the Processes API","description":"The `attribution` should be short and intended for presentation to a user, for example, in a corner of a map. Parts of the text can be links to other resources if additional information is needed. The string can include HTML markup."},"links":{"items":{"$ref":"#/components/schemas/Link"},"type":"array","title":"Links"}},"type":"object","required":["links"],"title":"LandingPage"},"Link":{"properties":{"href":{"type":"string","title":"Href"},"rel":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rel","example":"service"},"type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type","example":"application/json"},"hreflang":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Hreflang","example":"en"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"}},"type":"object","required":["href"],"title":"Link"},"Metadata":{"anyOf":[{"$ref":"#/components/schemas/Metadata1"},{"$ref":"#/components/schemas/Metadata2"}],"title":"Metadata"},"Metadata1":{"properties":{"href":{"type":"string","title":"Href"},"rel":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rel","example":"service"},"type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type","example":"application/json"},"hreflang":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Hreflang","example":"en"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"}},"type":"object","required":["href"],"title":"Metadata1"},"Metadata2":{"properties":{"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"lang":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lang"},"value":{"anyOf":[{"type":"string"},{"type":"object"},{"type":"null"}],"title":"Value"}},"type":"object","title":"Metadata2"},"Process-Input":{"properties":{"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"keywords":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Keywords"},"metadata":{"anyOf":[{"items":{"$ref":"#/components/schemas/Metadata"},"type":"array"},{"type":"null"}],"title":"Metadata"},"id":{"type":"string","title":"Id"},"version":{"type":"string","title":"Version"},"jobControlOptions":{"anyOf":[{"items":{"$ref":"#/components/schemas/JobControlOptions"},"type":"array"},{"type":"null"}],"title":"Jobcontroloptions"},"links":{"anyOf":[{"items":{"$ref":"#/components/schemas/Link"},"type":"array"},{"type":"null"}],"title":"Links"},"inputs":{"anyOf":[{"items":{"$ref":"#/components/schemas/InputValue-Input"},"type":"array"},{"type":"null"}],"title":"Inputs"},"outputs":{"anyOf":[{"items":{"$ref":"#/components/schemas/InputValue-Input"},"type":"array"},{"type":"null"}],"title":"Outputs"}},"type":"object","required":["id","version"],"title":"Process"},"Process-Output":{"properties":{"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"keywords":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Keywords"},"metadata":{"anyOf":[{"items":{"$ref":"#/components/schemas/Metadata"},"type":"array"},{"type":"null"}],"title":"Metadata"},"id":{"type":"string","title":"Id"},"version":{"type":"string","title":"Version"},"jobControlOptions":{"anyOf":[{"items":{"$ref":"#/components/schemas/JobControlOptions"},"type":"array"},{"type":"null"}],"title":"Jobcontroloptions"},"links":{"anyOf":[{"items":{"$ref":"#/components/schemas/Link"},"type":"array"},{"type":"null"}],"title":"Links"},"inputs":{"anyOf":[{"items":{"$ref":"#/components/schemas/InputValue-Output"},"type":"array"},{"type":"null"}],"title":"Inputs"},"outputs":{"anyOf":[{"items":{"$ref":"#/components/schemas/InputValue-Output"},"type":"array"},{"type":"null"}],"title":"Outputs"}},"type":"object","required":["id","version"],"title":"Process"},"ProcessList":{"properties":{"processes":{"items":{"$ref":"#/components/schemas/ProcessSummary"},"type":"array","title":"Processes"},"links":{"items":{"$ref":"#/components/schemas/Link"},"type":"array","title":"Links"}},"type":"object","required":["processes","links"],"title":"ProcessList"},"ProcessSummary":{"properties":{"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"keywords":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Keywords"},"metadata":{"anyOf":[{"items":{"$ref":"#/components/schemas/Metadata"},"type":"array"},{"type":"null"}],"title":"Metadata"},"id":{"type":"string","title":"Id"},"version":{"type":"string","title":"Version"},"jobControlOptions":{"anyOf":[{"items":{"$ref":"#/components/schemas/JobControlOptions"},"type":"array"},{"type":"null"}],"title":"Jobcontroloptions"},"links":{"anyOf":[{"items":{"$ref":"#/components/schemas/Link"},"type":"array"},{"type":"null"}],"title":"Links"}},"type":"object","required":["id","version"],"title":"ProcessSummary"},"Results":{"title":"Results"},"StatusCode":{"type":"string","enum":["accepted","running","successful","failed","dismissed"],"title":"StatusCode"},"StatusInfo":{"properties":{"processID":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Processid"},"type":{"$ref":"#/components/schemas/Type2"},"jobID":{"type":"string","title":"Jobid"},"status":{"$ref":"#/components/schemas/StatusCode"},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message"},"exception":{"anyOf":[{"$ref":"#/components/schemas/Exception"},{"type":"null"}]},"created":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created"},"started":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Started"},"finished":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Finished"},"updated":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated"},"progress":{"anyOf":[{"type":"integer","maximum":100.0,"minimum":0.0},{"type":"null"}],"title":"Progress"},"links":{"anyOf":[{"items":{"$ref":"#/components/schemas/Link"},"type":"array"},{"type":"null"}],"title":"Links"}},"type":"object","required":["type","jobID","status"],"title":"StatusInfo"},"Subscriber":{"properties":{"successUri":{"type":"string","minLength":1,"format":"uri","title":"Successuri"},"inProgressUri":{"anyOf":[{"type":"string","minLength":1,"format":"uri"},{"type":"null"}],"title":"Inprogressuri"},"failedUri":{"anyOf":[{"type":"string","minLength":1,"format":"uri"},{"type":"null"}],"title":"Faileduri"}},"type":"object","required":["successUri"],"title":"Subscriber"},"Type2":{"const":"process","title":"Type2"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}} \ No newline at end of file +{ + "openapi": "3.1.0", + "info": { + "title": "Unity Processing API conforming to the OGC API - Processes - Part 1 standard", + "description": "This document is an API definition document provided alongside the OGC API - Processes standard. The OGC API - Processes Standard specifies a processing interface to communicate over a RESTful protocol using JavaScript Object Notation (JSON) encodings. The specification allows for the wrapping of computational tasks into executable processes that can be offered by a server and be invoked by a client application.", + "version": "1.0.0" + }, + "paths": { + "/": { + "get": { + "summary": "Landing page of this API", + "description": "The landing page provides links to the:\n- API Definition (no fixed path),\n- Conformance Statements (`/conformance`),\n- Processes Metadata (`/processes`),\n- Endpoint for Job Monitoring (`/jobs`).\n\nFor more information, see [Section 7.2](https://docs.ogc.org/is/18-062r2/18-062r2.html#sc_landing_page).", + "operationId": "landing_page__get", + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LandingPage" + } + } + } + } + } + } + }, + "/health": { + "get": { + "summary": "Perform a Health Check", + "description": "Endpoint to perform a healthcheck on. This endpoint can primarily be used Docker\nto ensure a robust container orchestration and management is in place. Other\nservices which rely on proper functioning of the API service will not deploy if this\nendpoint returns any other HTTP status code except 200 (OK).\nReturns:\n HealthCheck: Returns a JSON response with the health status", + "operationId": "get_health_health_get", + "responses": { + "200": { + "description": "Return HTTP Status Code 200 (OK)", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HealthCheck" + } + } + } + } + } + } + }, + "/conformance": { + "get": { + "summary": "Information about standards that this API conforms to", + "description": "A list of all conformance classes, specified in a standard, that the server conforms to.\n\n| Conformance class | URI |\n| -------- | ------- |\n| Core | http://www.opengis.net/spec/ogcapi-processes-1/1.0/conf/core |\n| OGC Process Description | http://www.opengis.net/spec/ogcapi-processes-1/1.0/conf/ogc-process-description |\n| JSON | http://www.opengis.net/spec/ogcapi-processes-1/1.0/conf/json |\n| HTML | http://www.opengis.net/spec/ogcapi-processes-1/1.0/conf/html |\n| OpenAPI | Specification 3.0 http://www.opengis.net/spec/ogcapi-processes-1/1.0/conf/oas30 |\n| Job list | http://www.opengis.net/spec/ogcapi-processes-1/1.0/conf/job-list |\n| Callback | http://www.opengis.net/spec/ogcapi-processes-1/1.0/conf/callback |\n| Dismiss | http://www.opengis.net/spec/ogcapi-processes-1/1.0/conf/dismiss |\n\nFor more information, see [Section 7.4](https://docs.ogc.org/is/18-062r2/18-062r2.html#sc_conformance_classes).", + "operationId": "conformance_declaration_conformance_get", + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ConfClasses" + } + } + } + } + } + } + }, + "/processes": { + "get": { + "summary": "Retrieve the list of available processes", + "description": "The list of processes contains a summary of each process the OGC API - Processes offers, including the link to a more detailed description of the process.\n\nFor more information, see [Section 7.9](https://docs.ogc.org/is/18-062r2/18-062r2.html#sc_process_list).", + "operationId": "process_list_processes_get", + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProcessList" + } + } + } + } + } + }, + "post": { + "summary": "Register a process", + "description": "Register a new process.\n\n**Note:** This is not an officially supported endpoint in the OGC Processes specification.", + "operationId": "register_process_processes_post", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Process-Input" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Process-Output" + } + } + } + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + } + } + }, + "/processes/{process_id}": { + "delete": { + "summary": "Unregister a process", + "description": "Unregister an existing process.\n\n**Note:** This is not an officially supported endpoint in the OGC Processes specification.", + "operationId": "unregister_process_processes__process_id__delete", + "parameters": [ + { + "name": "process_id", + "in": "path", + "required": true, + "schema": { + "type": "string", + "title": "Process Id" + } + } + ], + "responses": { + "204": { + "description": "Successful Response" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + } + }, + "get": { + "summary": "Retrieve a process description", + "description": "The process description contains information about inputs and outputs and a link to the execution-endpoint for the process. The Core does not mandate the use of a specific process description to specify the interface of a process. That said, the Core requirements class makes the following recommendation:\n\nImplementations SHOULD consider supporting the OGC process description.\n\nFor more information, see [Section 7.10](https://docs.ogc.org/is/18-062r2/18-062r2.html#sc_process_description).", + "operationId": "process_description_processes__process_id__get", + "parameters": [ + { + "name": "process_id", + "in": "path", + "required": true, + "schema": { + "type": "string", + "title": "Process Id" + } + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Process-Output" + } + } + } + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + } + } + }, + "/jobs": { + "get": { + "summary": "Retrieve the list of jobs", + "description": "Lists available jobs.\n\nFor more information, see [Section 11](https://docs.ogc.org/is/18-062r2/18-062r2.html#sc_job_list).", + "operationId": "job_list_jobs_get", + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/JobList" + } + } + } + } + } + } + }, + "/processes/{process_id}/execution": { + "post": { + "summary": "Execute a process", + "description": "Create a new job.\n\nFor more information, see [Section 7.11](https://docs.ogc.org/is/18-062r2/18-062r2.html#sc_create_job).", + "operationId": "execute_processes__process_id__execution_post", + "parameters": [ + { + "name": "process_id", + "in": "path", + "required": true, + "schema": { + "type": "string", + "title": "Process Id" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Execute" + } + } + } + }, + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StatusInfo" + } + } + } + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + } + } + }, + "/jobs/{job_id}": { + "get": { + "summary": "Retrieve the status of a job", + "description": "Shows the status of a job.\n\nFor more information, see [Section 7.12](https://docs.ogc.org/is/18-062r2/18-062r2.html#sc_retrieve_status_info).", + "operationId": "status_jobs__job_id__get", + "parameters": [ + { + "name": "job_id", + "in": "path", + "required": true, + "schema": { + "type": "string", + "title": "Job Id" + } + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StatusInfo" + } + } + } + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + } + }, + "delete": { + "summary": "Cancel a job execution, remove a finished job", + "description": "Cancel a job execution and remove it from the jobs list.\n\nFor more information, see [Section 13](https://docs.ogc.org/is/18-062r2/18-062r2.html#Dismiss).", + "operationId": "dismiss_jobs__job_id__delete", + "parameters": [ + { + "name": "job_id", + "in": "path", + "required": true, + "schema": { + "type": "string", + "title": "Job Id" + } + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StatusInfo" + } + } + } + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + } + } + }, + "/jobs/{job_id}/results": { + "get": { + "summary": "Retrieve the result(s) of a job", + "description": "Lists available results of a job. In case of a failure, lists exceptions instead.\n\nFor more information, see [Section 7.13](https://docs.ogc.org/is/18-062r2/18-062r2.html#sc_retrieve_job_results).", + "operationId": "results_jobs__job_id__results_get", + "parameters": [ + { + "name": "job_id", + "in": "path", + "required": true, + "schema": { + "type": "string", + "title": "Job Id" + } + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Results" + } + } + } + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + } + } + } + }, + "components": { + "securitySchemes": { + "bearerAuth": { + "type": "http", + "scheme": "bearer", + "bearerFormat":"JWT" + } + }, + "schemas": { + "Bbox": { + "properties": { + "bbox": { + "items": { + "type": "number" + }, + "type": "array", + "title": "Bbox" + }, + "crs": { + "anyOf": [ + { + "$ref": "#/components/schemas/Crs5" + }, + { + "type": "string", + "minLength": 1, + "format": "uri" + }, + { + "type": "null" + } + ], + "title": "Crs", + "default": "http://www.opengis.net/def/crs/OGC/1.3/CRS84" + } + }, + "type": "object", + "required": [ + "bbox" + ], + "title": "Bbox" + }, + "BinaryInputValue": { + "type": "string", + "title": "BinaryInputValue" + }, + "ConfClasses": { + "properties": { + "conformsTo": { + "items": { + "type": "string" + }, + "type": "array", + "title": "Conformsto" + } + }, + "type": "object", + "required": [ + "conformsTo" + ], + "title": "ConfClasses" + }, + "Crs5": { + "type": "string", + "enum": [ + "http://www.opengis.net/def/crs/OGC/1.3/CRS84", + "http://www.opengis.net/def/crs/OGC/0/CRS84h" + ], + "title": "Crs5" + }, + "Exception": { + "properties": { + "type": { + "type": "string", + "title": "Type" + }, + "title": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Title" + }, + "status": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Status" + }, + "detail": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Detail" + }, + "instance": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Instance" + } + }, + "additionalProperties": true, + "type": "object", + "required": [ + "type" + ], + "title": "Exception" + }, + "Execute": { + "properties": { + "inputs": { + "anyOf": [ + {}, + { + "type": "null" + } + ], + "title": "Inputs" + }, + "outputs": { + "anyOf": [ + {}, + { + "type": "null" + } + ], + "title": "Outputs" + }, + "subscriber": { + "anyOf": [ + { + "$ref": "#/components/schemas/Subscriber" + }, + { + "type": "null" + } + ] + } + }, + "type": "object", + "title": "Execute" + }, + "HTTPValidationError": { + "properties": { + "detail": { + "items": { + "$ref": "#/components/schemas/ValidationError" + }, + "type": "array", + "title": "Detail" + } + }, + "type": "object", + "title": "HTTPValidationError" + }, + "HealthCheck": { + "properties": { + "status": { + "type": "string", + "title": "Status", + "default": "OK" + } + }, + "type": "object", + "title": "HealthCheck", + "description": "Response model to validate and return when performing a health check." + }, + "InputValue-Input": { + "anyOf": [ + { + "$ref": "#/components/schemas/InputValueNoObject-Input" + }, + { + "type": "object" + } + ], + "title": "InputValue" + }, + "InputValue-Output": { + "anyOf": [ + { + "$ref": "#/components/schemas/InputValueNoObject-Output" + }, + { + "type": "object" + } + ], + "title": "InputValue" + }, + "InputValueNoObject-Input": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "integer" + }, + { + "type": "boolean" + }, + { + "items": {}, + "type": "array" + }, + { + "$ref": "#/components/schemas/BinaryInputValue" + }, + { + "$ref": "#/components/schemas/Bbox" + } + ], + "title": "InputValueNoObject" + }, + "InputValueNoObject-Output": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "integer" + }, + { + "type": "boolean" + }, + { + "items": {}, + "type": "array" + }, + { + "$ref": "#/components/schemas/BinaryInputValue" + }, + { + "$ref": "#/components/schemas/Bbox" + } + ], + "title": "InputValueNoObject" + }, + "JobControlOptions": { + "type": "string", + "enum": [ + "sync-execute", + "async-execute", + "dismiss" + ], + "title": "JobControlOptions" + }, + "JobList": { + "properties": { + "jobs": { + "items": { + "$ref": "#/components/schemas/StatusInfo" + }, + "type": "array", + "title": "Jobs" + }, + "links": { + "items": { + "$ref": "#/components/schemas/Link" + }, + "type": "array", + "title": "Links" + } + }, + "type": "object", + "required": [ + "jobs", + "links" + ], + "title": "JobList" + }, + "LandingPage": { + "properties": { + "title": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Title", + "example": "Example processing server" + }, + "description": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Description", + "example": "Example server implementing the OGC API - Processes 1.0 Standard" + }, + "attribution": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "attribution for the Processes API", + "description": "The `attribution` should be short and intended for presentation to a user, for example, in a corner of a map. Parts of the text can be links to other resources if additional information is needed. The string can include HTML markup." + }, + "links": { + "items": { + "$ref": "#/components/schemas/Link" + }, + "type": "array", + "title": "Links" + } + }, + "type": "object", + "required": [ + "links" + ], + "title": "LandingPage" + }, + "Link": { + "properties": { + "href": { + "type": "string", + "title": "Href" + }, + "rel": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Rel", + "example": "service" + }, + "type": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Type", + "example": "application/json" + }, + "hreflang": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Hreflang", + "example": "en" + }, + "title": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Title" + } + }, + "type": "object", + "required": [ + "href" + ], + "title": "Link" + }, + "Metadata": { + "anyOf": [ + { + "$ref": "#/components/schemas/Metadata1" + }, + { + "$ref": "#/components/schemas/Metadata2" + } + ], + "title": "Metadata" + }, + "Metadata1": { + "properties": { + "href": { + "type": "string", + "title": "Href" + }, + "rel": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Rel", + "example": "service" + }, + "type": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Type", + "example": "application/json" + }, + "hreflang": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Hreflang", + "example": "en" + }, + "title": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Title" + }, + "role": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Role" + } + }, + "type": "object", + "required": [ + "href" + ], + "title": "Metadata1" + }, + "Metadata2": { + "properties": { + "role": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Role" + }, + "title": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Title" + }, + "lang": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Lang" + }, + "value": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "type": "null" + } + ], + "title": "Value" + } + }, + "type": "object", + "title": "Metadata2" + }, + "Process-Input": { + "properties": { + "title": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Title" + }, + "description": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Description" + }, + "keywords": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Keywords" + }, + "metadata": { + "anyOf": [ + { + "items": { + "$ref": "#/components/schemas/Metadata" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Metadata" + }, + "id": { + "type": "string", + "title": "Id" + }, + "version": { + "type": "string", + "title": "Version" + }, + "jobControlOptions": { + "anyOf": [ + { + "items": { + "$ref": "#/components/schemas/JobControlOptions" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Jobcontroloptions" + }, + "links": { + "anyOf": [ + { + "items": { + "$ref": "#/components/schemas/Link" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Links" + }, + "inputs": { + "anyOf": [ + { + "items": { + "$ref": "#/components/schemas/InputValue-Input" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Inputs" + }, + "outputs": { + "anyOf": [ + { + "items": { + "$ref": "#/components/schemas/InputValue-Input" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Outputs" + } + }, + "type": "object", + "required": [ + "id", + "version" + ], + "title": "Process" + }, + "Process-Output": { + "properties": { + "title": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Title" + }, + "description": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Description" + }, + "keywords": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Keywords" + }, + "metadata": { + "anyOf": [ + { + "items": { + "$ref": "#/components/schemas/Metadata" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Metadata" + }, + "id": { + "type": "string", + "title": "Id" + }, + "version": { + "type": "string", + "title": "Version" + }, + "jobControlOptions": { + "anyOf": [ + { + "items": { + "$ref": "#/components/schemas/JobControlOptions" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Jobcontroloptions" + }, + "links": { + "anyOf": [ + { + "items": { + "$ref": "#/components/schemas/Link" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Links" + }, + "inputs": { + "anyOf": [ + { + "items": { + "$ref": "#/components/schemas/InputValue-Output" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Inputs" + }, + "outputs": { + "anyOf": [ + { + "items": { + "$ref": "#/components/schemas/InputValue-Output" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Outputs" + } + }, + "type": "object", + "required": [ + "id", + "version" + ], + "title": "Process" + }, + "ProcessList": { + "properties": { + "processes": { + "items": { + "$ref": "#/components/schemas/ProcessSummary" + }, + "type": "array", + "title": "Processes" + }, + "links": { + "items": { + "$ref": "#/components/schemas/Link" + }, + "type": "array", + "title": "Links" + } + }, + "type": "object", + "required": [ + "processes", + "links" + ], + "title": "ProcessList" + }, + "ProcessSummary": { + "properties": { + "title": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Title" + }, + "description": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Description" + }, + "keywords": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Keywords" + }, + "metadata": { + "anyOf": [ + { + "items": { + "$ref": "#/components/schemas/Metadata" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Metadata" + }, + "id": { + "type": "string", + "title": "Id" + }, + "version": { + "type": "string", + "title": "Version" + }, + "jobControlOptions": { + "anyOf": [ + { + "items": { + "$ref": "#/components/schemas/JobControlOptions" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Jobcontroloptions" + }, + "links": { + "anyOf": [ + { + "items": { + "$ref": "#/components/schemas/Link" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Links" + } + }, + "type": "object", + "required": [ + "id", + "version" + ], + "title": "ProcessSummary" + }, + "Results": { + "title": "Results" + }, + "StatusCode": { + "type": "string", + "enum": [ + "accepted", + "running", + "successful", + "failed", + "dismissed" + ], + "title": "StatusCode" + }, + "StatusInfo": { + "properties": { + "processID": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Processid" + }, + "type": { + "$ref": "#/components/schemas/Type2" + }, + "jobID": { + "type": "string", + "title": "Jobid" + }, + "status": { + "$ref": "#/components/schemas/StatusCode" + }, + "message": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Message" + }, + "exception": { + "anyOf": [ + { + "$ref": "#/components/schemas/Exception" + }, + { + "type": "null" + } + ] + }, + "created": { + "anyOf": [ + { + "type": "string", + "format": "date-time" + }, + { + "type": "null" + } + ], + "title": "Created" + }, + "started": { + "anyOf": [ + { + "type": "string", + "format": "date-time" + }, + { + "type": "null" + } + ], + "title": "Started" + }, + "finished": { + "anyOf": [ + { + "type": "string", + "format": "date-time" + }, + { + "type": "null" + } + ], + "title": "Finished" + }, + "updated": { + "anyOf": [ + { + "type": "string", + "format": "date-time" + }, + { + "type": "null" + } + ], + "title": "Updated" + }, + "progress": { + "anyOf": [ + { + "type": "integer", + "maximum": 100.0, + "minimum": 0.0 + }, + { + "type": "null" + } + ], + "title": "Progress" + }, + "links": { + "anyOf": [ + { + "items": { + "$ref": "#/components/schemas/Link" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Links" + } + }, + "type": "object", + "required": [ + "type", + "jobID", + "status" + ], + "title": "StatusInfo" + }, + "Subscriber": { + "properties": { + "successUri": { + "type": "string", + "minLength": 1, + "format": "uri", + "title": "Successuri" + }, + "inProgressUri": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "format": "uri" + }, + { + "type": "null" + } + ], + "title": "Inprogressuri" + }, + "failedUri": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "format": "uri" + }, + { + "type": "null" + } + ], + "title": "Faileduri" + } + }, + "type": "object", + "required": [ + "successUri" + ], + "title": "Subscriber" + }, + "Type2": { + "const": "process", + "title": "Type2" + }, + "ValidationError": { + "properties": { + "loc": { + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "integer" + } + ] + }, + "type": "array", + "title": "Location" + }, + "msg": { + "type": "string", + "title": "Message" + }, + "type": { + "type": "string", + "title": "Error Type" + } + }, + "type": "object", + "required": [ + "loc", + "msg", + "type" + ], + "title": "ValidationError" + } + } + }, + "security": [ + { "bearerAuth":[] } + ] +} diff --git a/poetry.lock b/poetry.lock new file mode 100644 index 0000000..08cf1b9 --- /dev/null +++ b/poetry.lock @@ -0,0 +1,614 @@ +# This file is automatically @generated by Poetry 1.8.2 and should not be changed by hand. + +[[package]] +name = "annotated-types" +version = "0.5.0" +description = "Reusable constraint types to use with typing.Annotated" +optional = false +python-versions = ">=3.7" +files = [ + {file = "annotated_types-0.5.0-py3-none-any.whl", hash = "sha256:58da39888f92c276ad970249761ebea80ba544b77acddaa1a4d6cf78287d45fd"}, + {file = "annotated_types-0.5.0.tar.gz", hash = "sha256:47cdc3490d9ac1506ce92c7aaa76c579dc3509ff11e098fc867e5130ab7be802"}, +] + +[package.dependencies] +typing-extensions = {version = ">=4.0.0", markers = "python_version < \"3.9\""} + +[[package]] +name = "colorama" +version = "0.4.6" +description = "Cross-platform colored terminal text." +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +files = [ + {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, + {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, +] + +[[package]] +name = "distlib" +version = "0.3.8" +description = "Distribution utilities" +optional = false +python-versions = "*" +files = [ + {file = "distlib-0.3.8-py2.py3-none-any.whl", hash = "sha256:034db59a0b96f8ca18035f36290806a9a6e6bd9d1ff91e45a7f172eb17e51784"}, + {file = "distlib-0.3.8.tar.gz", hash = "sha256:1530ea13e350031b6312d8580ddb6b27a104275a31106523b8f123787f494f64"}, +] + +[[package]] +name = "exceptiongroup" +version = "1.2.1" +description = "Backport of PEP 654 (exception groups)" +optional = false +python-versions = ">=3.7" +files = [ + {file = "exceptiongroup-1.2.1-py3-none-any.whl", hash = "sha256:5258b9ed329c5bbdd31a309f53cbfb0b155341807f6ff7606a1e801a891b29ad"}, + {file = "exceptiongroup-1.2.1.tar.gz", hash = "sha256:a4785e48b045528f5bfe627b6ad554ff32def154f42372786903b7abcfe1aa16"}, +] + +[package.extras] +test = ["pytest (>=6)"] + +[[package]] +name = "filelock" +version = "3.12.2" +description = "A platform independent file lock." +optional = false +python-versions = ">=3.7" +files = [ + {file = "filelock-3.12.2-py3-none-any.whl", hash = "sha256:cbb791cdea2a72f23da6ac5b5269ab0a0d161e9ef0100e653b69049a7706d1ec"}, + {file = "filelock-3.12.2.tar.gz", hash = "sha256:002740518d8aa59a26b0c76e10fb8c6e15eae825d34b6fdf670333fd7b938d81"}, +] + +[package.extras] +docs = ["furo (>=2023.5.20)", "sphinx (>=7.0.1)", "sphinx-autodoc-typehints (>=1.23,!=1.23.4)"] +testing = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "diff-cover (>=7.5)", "pytest (>=7.3.1)", "pytest-cov (>=4.1)", "pytest-mock (>=3.10)", "pytest-timeout (>=2.1)"] + +[[package]] +name = "flake8" +version = "5.0.4" +description = "the modular source code checker: pep8 pyflakes and co" +optional = false +python-versions = ">=3.6.1" +files = [ + {file = "flake8-5.0.4-py2.py3-none-any.whl", hash = "sha256:7a1cf6b73744f5806ab95e526f6f0d8c01c66d7bbe349562d22dfca20610b248"}, + {file = "flake8-5.0.4.tar.gz", hash = "sha256:6fbe320aad8d6b95cec8b8e47bc933004678dc63095be98528b7bdd2a9f510db"}, +] + +[package.dependencies] +importlib-metadata = {version = ">=1.1.0,<4.3", markers = "python_version < \"3.8\""} +mccabe = ">=0.7.0,<0.8.0" +pycodestyle = ">=2.9.0,<2.10.0" +pyflakes = ">=2.5.0,<2.6.0" + +[[package]] +name = "importlib-metadata" +version = "4.2.0" +description = "Read metadata from Python packages" +optional = false +python-versions = ">=3.6" +files = [ + {file = "importlib_metadata-4.2.0-py3-none-any.whl", hash = "sha256:057e92c15bc8d9e8109738a48db0ccb31b4d9d5cfbee5a8670879a30be66304b"}, + {file = "importlib_metadata-4.2.0.tar.gz", hash = "sha256:b7e52a1f8dec14a75ea73e0891f3060099ca1d8e6a462a4dff11c3e119ea1b31"}, +] + +[package.dependencies] +typing-extensions = {version = ">=3.6.4", markers = "python_version < \"3.8\""} +zipp = ">=0.5" + +[package.extras] +docs = ["jaraco.packaging (>=8.2)", "rst.linker (>=1.9)", "sphinx"] +testing = ["flufl.flake8", "importlib-resources (>=1.3)", "packaging", "pep517", "pyfakefs", "pytest (>=4.6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.0.1)", "pytest-flake8", "pytest-mypy"] + +[[package]] +name = "iniconfig" +version = "2.0.0" +description = "brain-dead simple config-ini parsing" +optional = false +python-versions = ">=3.7" +files = [ + {file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"}, + {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"}, +] + +[[package]] +name = "mccabe" +version = "0.7.0" +description = "McCabe checker, plugin for flake8" +optional = false +python-versions = ">=3.6" +files = [ + {file = "mccabe-0.7.0-py2.py3-none-any.whl", hash = "sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e"}, + {file = "mccabe-0.7.0.tar.gz", hash = "sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325"}, +] + +[[package]] +name = "mypy" +version = "1.4.1" +description = "Optional static typing for Python" +optional = false +python-versions = ">=3.7" +files = [ + {file = "mypy-1.4.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:566e72b0cd6598503e48ea610e0052d1b8168e60a46e0bfd34b3acf2d57f96a8"}, + {file = "mypy-1.4.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ca637024ca67ab24a7fd6f65d280572c3794665eaf5edcc7e90a866544076878"}, + {file = "mypy-1.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0dde1d180cd84f0624c5dcaaa89c89775550a675aff96b5848de78fb11adabcd"}, + {file = "mypy-1.4.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:8c4d8e89aa7de683e2056a581ce63c46a0c41e31bd2b6d34144e2c80f5ea53dc"}, + {file = "mypy-1.4.1-cp310-cp310-win_amd64.whl", hash = "sha256:bfdca17c36ae01a21274a3c387a63aa1aafe72bff976522886869ef131b937f1"}, + {file = "mypy-1.4.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:7549fbf655e5825d787bbc9ecf6028731973f78088fbca3a1f4145c39ef09462"}, + {file = "mypy-1.4.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:98324ec3ecf12296e6422939e54763faedbfcc502ea4a4c38502082711867258"}, + {file = "mypy-1.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:141dedfdbfe8a04142881ff30ce6e6653c9685b354876b12e4fe6c78598b45e2"}, + {file = "mypy-1.4.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:8207b7105829eca6f3d774f64a904190bb2231de91b8b186d21ffd98005f14a7"}, + {file = "mypy-1.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:16f0db5b641ba159eff72cff08edc3875f2b62b2fa2bc24f68c1e7a4e8232d01"}, + {file = "mypy-1.4.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:470c969bb3f9a9efcedbadcd19a74ffb34a25f8e6b0e02dae7c0e71f8372f97b"}, + {file = "mypy-1.4.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e5952d2d18b79f7dc25e62e014fe5a23eb1a3d2bc66318df8988a01b1a037c5b"}, + {file = "mypy-1.4.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:190b6bab0302cec4e9e6767d3eb66085aef2a1cc98fe04936d8a42ed2ba77bb7"}, + {file = "mypy-1.4.1-cp37-cp37m-win_amd64.whl", hash = "sha256:9d40652cc4fe33871ad3338581dca3297ff5f2213d0df345bcfbde5162abf0c9"}, + {file = "mypy-1.4.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:01fd2e9f85622d981fd9063bfaef1aed6e336eaacca00892cd2d82801ab7c042"}, + {file = "mypy-1.4.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:2460a58faeea905aeb1b9b36f5065f2dc9a9c6e4c992a6499a2360c6c74ceca3"}, + {file = "mypy-1.4.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a2746d69a8196698146a3dbe29104f9eb6a2a4d8a27878d92169a6c0b74435b6"}, + {file = "mypy-1.4.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:ae704dcfaa180ff7c4cfbad23e74321a2b774f92ca77fd94ce1049175a21c97f"}, + {file = "mypy-1.4.1-cp38-cp38-win_amd64.whl", hash = "sha256:43d24f6437925ce50139a310a64b2ab048cb2d3694c84c71c3f2a1626d8101dc"}, + {file = "mypy-1.4.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c482e1246726616088532b5e964e39765b6d1520791348e6c9dc3af25b233828"}, + {file = "mypy-1.4.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:43b592511672017f5b1a483527fd2684347fdffc041c9ef53428c8dc530f79a3"}, + {file = "mypy-1.4.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:34a9239d5b3502c17f07fd7c0b2ae6b7dd7d7f6af35fbb5072c6208e76295816"}, + {file = "mypy-1.4.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5703097c4936bbb9e9bce41478c8d08edd2865e177dc4c52be759f81ee4dd26c"}, + {file = "mypy-1.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:e02d700ec8d9b1859790c0475df4e4092c7bf3272a4fd2c9f33d87fac4427b8f"}, + {file = "mypy-1.4.1-py3-none-any.whl", hash = "sha256:45d32cec14e7b97af848bddd97d85ea4f0db4d5a149ed9676caa4eb2f7402bb4"}, + {file = "mypy-1.4.1.tar.gz", hash = "sha256:9bbcd9ab8ea1f2e1c8031c21445b511442cc45c89951e49bbf852cbb70755b1b"}, +] + +[package.dependencies] +mypy-extensions = ">=1.0.0" +tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} +typed-ast = {version = ">=1.4.0,<2", markers = "python_version < \"3.8\""} +typing-extensions = ">=4.1.0" + +[package.extras] +dmypy = ["psutil (>=4.0)"] +install-types = ["pip"] +python2 = ["typed-ast (>=1.4.0,<2)"] +reports = ["lxml"] + +[[package]] +name = "mypy-extensions" +version = "1.0.0" +description = "Type system extensions for programs checked with the mypy type checker." +optional = false +python-versions = ">=3.5" +files = [ + {file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"}, + {file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"}, +] + +[[package]] +name = "packaging" +version = "24.0" +description = "Core utilities for Python packages" +optional = false +python-versions = ">=3.7" +files = [ + {file = "packaging-24.0-py3-none-any.whl", hash = "sha256:2ddfb553fdf02fb784c234c7ba6ccc288296ceabec964ad2eae3777778130bc5"}, + {file = "packaging-24.0.tar.gz", hash = "sha256:eb82c5e3e56209074766e6885bb04b8c38a0c015d0a30036ebe7ece34c9989e9"}, +] + +[[package]] +name = "platformdirs" +version = "2.6.2" +description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." +optional = false +python-versions = ">=3.7" +files = [ + {file = "platformdirs-2.6.2-py3-none-any.whl", hash = "sha256:83c8f6d04389165de7c9b6f0c682439697887bca0aa2f1c87ef1826be3584490"}, + {file = "platformdirs-2.6.2.tar.gz", hash = "sha256:e1fea1fe471b9ff8332e229df3cb7de4f53eeea4998d3b6bfff542115e998bd2"}, +] + +[package.dependencies] +typing-extensions = {version = ">=4.4", markers = "python_version < \"3.8\""} + +[package.extras] +docs = ["furo (>=2022.12.7)", "proselint (>=0.13)", "sphinx (>=5.3)", "sphinx-autodoc-typehints (>=1.19.5)"] +test = ["appdirs (==1.4.4)", "covdefaults (>=2.2.2)", "pytest (>=7.2)", "pytest-cov (>=4)", "pytest-mock (>=3.10)"] + +[[package]] +name = "pluggy" +version = "1.2.0" +description = "plugin and hook calling mechanisms for python" +optional = false +python-versions = ">=3.7" +files = [ + {file = "pluggy-1.2.0-py3-none-any.whl", hash = "sha256:c2fd55a7d7a3863cba1a013e4e2414658b1d07b6bc57b3919e0c63c9abb99849"}, + {file = "pluggy-1.2.0.tar.gz", hash = "sha256:d12f0c4b579b15f5e054301bb226ee85eeeba08ffec228092f8defbaa3a4c4b3"}, +] + +[package.dependencies] +importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""} + +[package.extras] +dev = ["pre-commit", "tox"] +testing = ["pytest", "pytest-benchmark"] + +[[package]] +name = "py" +version = "1.11.0" +description = "library with cross-python path, ini-parsing, io, code, log facilities" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "py-1.11.0-py2.py3-none-any.whl", hash = "sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378"}, + {file = "py-1.11.0.tar.gz", hash = "sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719"}, +] + +[[package]] +name = "pycodestyle" +version = "2.9.1" +description = "Python style guide checker" +optional = false +python-versions = ">=3.6" +files = [ + {file = "pycodestyle-2.9.1-py2.py3-none-any.whl", hash = "sha256:d1735fc58b418fd7c5f658d28d943854f8a849b01a5d0a1e6f3f3fdd0166804b"}, + {file = "pycodestyle-2.9.1.tar.gz", hash = "sha256:2c9607871d58c76354b697b42f5d57e1ada7d261c261efac224b664affdc5785"}, +] + +[[package]] +name = "pydantic" +version = "2.5.3" +description = "Data validation using Python type hints" +optional = false +python-versions = ">=3.7" +files = [ + {file = "pydantic-2.5.3-py3-none-any.whl", hash = "sha256:d0caf5954bee831b6bfe7e338c32b9e30c85dfe080c843680783ac2b631673b4"}, + {file = "pydantic-2.5.3.tar.gz", hash = "sha256:b3ef57c62535b0941697cce638c08900d87fcb67e29cfa99e8a68f747f393f7a"}, +] + +[package.dependencies] +annotated-types = ">=0.4.0" +importlib-metadata = {version = "*", markers = "python_version == \"3.7\""} +pydantic-core = "2.14.6" +typing-extensions = ">=4.6.1" + +[package.extras] +email = ["email-validator (>=2.0.0)"] + +[[package]] +name = "pydantic-core" +version = "2.14.6" +description = "" +optional = false +python-versions = ">=3.7" +files = [ + {file = "pydantic_core-2.14.6-cp310-cp310-macosx_10_7_x86_64.whl", hash = "sha256:72f9a942d739f09cd42fffe5dc759928217649f070056f03c70df14f5770acf9"}, + {file = "pydantic_core-2.14.6-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6a31d98c0d69776c2576dda4b77b8e0c69ad08e8b539c25c7d0ca0dc19a50d6c"}, + {file = "pydantic_core-2.14.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5aa90562bc079c6c290f0512b21768967f9968e4cfea84ea4ff5af5d917016e4"}, + {file = "pydantic_core-2.14.6-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:370ffecb5316ed23b667d99ce4debe53ea664b99cc37bfa2af47bc769056d534"}, + {file = "pydantic_core-2.14.6-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f85f3843bdb1fe80e8c206fe6eed7a1caeae897e496542cee499c374a85c6e08"}, + {file = "pydantic_core-2.14.6-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9862bf828112e19685b76ca499b379338fd4c5c269d897e218b2ae8fcb80139d"}, + {file = "pydantic_core-2.14.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:036137b5ad0cb0004c75b579445a1efccd072387a36c7f217bb8efd1afbe5245"}, + {file = "pydantic_core-2.14.6-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:92879bce89f91f4b2416eba4429c7b5ca22c45ef4a499c39f0c5c69257522c7c"}, + {file = "pydantic_core-2.14.6-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:0c08de15d50fa190d577e8591f0329a643eeaed696d7771760295998aca6bc66"}, + {file = "pydantic_core-2.14.6-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:36099c69f6b14fc2c49d7996cbf4f87ec4f0e66d1c74aa05228583225a07b590"}, + {file = "pydantic_core-2.14.6-cp310-none-win32.whl", hash = "sha256:7be719e4d2ae6c314f72844ba9d69e38dff342bc360379f7c8537c48e23034b7"}, + {file = "pydantic_core-2.14.6-cp310-none-win_amd64.whl", hash = "sha256:36fa402dcdc8ea7f1b0ddcf0df4254cc6b2e08f8cd80e7010d4c4ae6e86b2a87"}, + {file = "pydantic_core-2.14.6-cp311-cp311-macosx_10_7_x86_64.whl", hash = "sha256:dea7fcd62915fb150cdc373212141a30037e11b761fbced340e9db3379b892d4"}, + {file = "pydantic_core-2.14.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ffff855100bc066ff2cd3aa4a60bc9534661816b110f0243e59503ec2df38421"}, + {file = "pydantic_core-2.14.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1b027c86c66b8627eb90e57aee1f526df77dc6d8b354ec498be9a757d513b92b"}, + {file = "pydantic_core-2.14.6-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:00b1087dabcee0b0ffd104f9f53d7d3eaddfaa314cdd6726143af6bc713aa27e"}, + {file = "pydantic_core-2.14.6-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:75ec284328b60a4e91010c1acade0c30584f28a1f345bc8f72fe8b9e46ec6a96"}, + {file = "pydantic_core-2.14.6-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7e1f4744eea1501404b20b0ac059ff7e3f96a97d3e3f48ce27a139e053bb370b"}, + {file = "pydantic_core-2.14.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b2602177668f89b38b9f84b7b3435d0a72511ddef45dc14446811759b82235a1"}, + {file = "pydantic_core-2.14.6-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6c8edaea3089bf908dd27da8f5d9e395c5b4dc092dbcce9b65e7156099b4b937"}, + {file = "pydantic_core-2.14.6-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:478e9e7b360dfec451daafe286998d4a1eeaecf6d69c427b834ae771cad4b622"}, + {file = "pydantic_core-2.14.6-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:b6ca36c12a5120bad343eef193cc0122928c5c7466121da7c20f41160ba00ba2"}, + {file = "pydantic_core-2.14.6-cp311-none-win32.whl", hash = "sha256:2b8719037e570639e6b665a4050add43134d80b687288ba3ade18b22bbb29dd2"}, + {file = "pydantic_core-2.14.6-cp311-none-win_amd64.whl", hash = "sha256:78ee52ecc088c61cce32b2d30a826f929e1708f7b9247dc3b921aec367dc1b23"}, + {file = "pydantic_core-2.14.6-cp311-none-win_arm64.whl", hash = "sha256:a19b794f8fe6569472ff77602437ec4430f9b2b9ec7a1105cfd2232f9ba355e6"}, + {file = "pydantic_core-2.14.6-cp312-cp312-macosx_10_7_x86_64.whl", hash = "sha256:667aa2eac9cd0700af1ddb38b7b1ef246d8cf94c85637cbb03d7757ca4c3fdec"}, + {file = "pydantic_core-2.14.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:cdee837710ef6b56ebd20245b83799fce40b265b3b406e51e8ccc5b85b9099b7"}, + {file = "pydantic_core-2.14.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2c5bcf3414367e29f83fd66f7de64509a8fd2368b1edf4351e862910727d3e51"}, + {file = "pydantic_core-2.14.6-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:26a92ae76f75d1915806b77cf459811e772d8f71fd1e4339c99750f0e7f6324f"}, + {file = "pydantic_core-2.14.6-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a983cca5ed1dd9a35e9e42ebf9f278d344603bfcb174ff99a5815f953925140a"}, + {file = "pydantic_core-2.14.6-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cb92f9061657287eded380d7dc455bbf115430b3aa4741bdc662d02977e7d0af"}, + {file = "pydantic_core-2.14.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e4ace1e220b078c8e48e82c081e35002038657e4b37d403ce940fa679e57113b"}, + {file = "pydantic_core-2.14.6-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ef633add81832f4b56d3b4c9408b43d530dfca29e68fb1b797dcb861a2c734cd"}, + {file = "pydantic_core-2.14.6-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:7e90d6cc4aad2cc1f5e16ed56e46cebf4877c62403a311af20459c15da76fd91"}, + {file = "pydantic_core-2.14.6-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:e8a5ac97ea521d7bde7621d86c30e86b798cdecd985723c4ed737a2aa9e77d0c"}, + {file = "pydantic_core-2.14.6-cp312-none-win32.whl", hash = "sha256:f27207e8ca3e5e021e2402ba942e5b4c629718e665c81b8b306f3c8b1ddbb786"}, + {file = "pydantic_core-2.14.6-cp312-none-win_amd64.whl", hash = "sha256:b3e5fe4538001bb82e2295b8d2a39356a84694c97cb73a566dc36328b9f83b40"}, + {file = "pydantic_core-2.14.6-cp312-none-win_arm64.whl", hash = "sha256:64634ccf9d671c6be242a664a33c4acf12882670b09b3f163cd00a24cffbd74e"}, + {file = "pydantic_core-2.14.6-cp37-cp37m-macosx_10_7_x86_64.whl", hash = "sha256:24368e31be2c88bd69340fbfe741b405302993242ccb476c5c3ff48aeee1afe0"}, + {file = "pydantic_core-2.14.6-cp37-cp37m-macosx_11_0_arm64.whl", hash = "sha256:e33b0834f1cf779aa839975f9d8755a7c2420510c0fa1e9fa0497de77cd35d2c"}, + {file = "pydantic_core-2.14.6-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6af4b3f52cc65f8a0bc8b1cd9676f8c21ef3e9132f21fed250f6958bd7223bed"}, + {file = "pydantic_core-2.14.6-cp37-cp37m-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d15687d7d7f40333bd8266f3814c591c2e2cd263fa2116e314f60d82086e353a"}, + {file = "pydantic_core-2.14.6-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:095b707bb287bfd534044166ab767bec70a9bba3175dcdc3371782175c14e43c"}, + {file = "pydantic_core-2.14.6-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:94fc0e6621e07d1e91c44e016cc0b189b48db053061cc22d6298a611de8071bb"}, + {file = "pydantic_core-2.14.6-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1ce830e480f6774608dedfd4a90c42aac4a7af0a711f1b52f807130c2e434c06"}, + {file = "pydantic_core-2.14.6-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a306cdd2ad3a7d795d8e617a58c3a2ed0f76c8496fb7621b6cd514eb1532cae8"}, + {file = "pydantic_core-2.14.6-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:2f5fa187bde8524b1e37ba894db13aadd64faa884657473b03a019f625cee9a8"}, + {file = "pydantic_core-2.14.6-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:438027a975cc213a47c5d70672e0d29776082155cfae540c4e225716586be75e"}, + {file = "pydantic_core-2.14.6-cp37-none-win32.whl", hash = "sha256:f96ae96a060a8072ceff4cfde89d261837b4294a4f28b84a28765470d502ccc6"}, + {file = "pydantic_core-2.14.6-cp37-none-win_amd64.whl", hash = "sha256:e646c0e282e960345314f42f2cea5e0b5f56938c093541ea6dbf11aec2862391"}, + {file = "pydantic_core-2.14.6-cp38-cp38-macosx_10_7_x86_64.whl", hash = "sha256:db453f2da3f59a348f514cfbfeb042393b68720787bbef2b4c6068ea362c8149"}, + {file = "pydantic_core-2.14.6-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:3860c62057acd95cc84044e758e47b18dcd8871a328ebc8ccdefd18b0d26a21b"}, + {file = "pydantic_core-2.14.6-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:36026d8f99c58d7044413e1b819a67ca0e0b8ebe0f25e775e6c3d1fabb3c38fb"}, + {file = "pydantic_core-2.14.6-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8ed1af8692bd8d2a29d702f1a2e6065416d76897d726e45a1775b1444f5928a7"}, + {file = "pydantic_core-2.14.6-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:314ccc4264ce7d854941231cf71b592e30d8d368a71e50197c905874feacc8a8"}, + {file = "pydantic_core-2.14.6-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:982487f8931067a32e72d40ab6b47b1628a9c5d344be7f1a4e668fb462d2da42"}, + {file = "pydantic_core-2.14.6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2dbe357bc4ddda078f79d2a36fc1dd0494a7f2fad83a0a684465b6f24b46fe80"}, + {file = "pydantic_core-2.14.6-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2f6ffc6701a0eb28648c845f4945a194dc7ab3c651f535b81793251e1185ac3d"}, + {file = "pydantic_core-2.14.6-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:7f5025db12fc6de7bc1104d826d5aee1d172f9ba6ca936bf6474c2148ac336c1"}, + {file = "pydantic_core-2.14.6-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:dab03ed811ed1c71d700ed08bde8431cf429bbe59e423394f0f4055f1ca0ea60"}, + {file = "pydantic_core-2.14.6-cp38-none-win32.whl", hash = "sha256:dfcbebdb3c4b6f739a91769aea5ed615023f3c88cb70df812849aef634c25fbe"}, + {file = "pydantic_core-2.14.6-cp38-none-win_amd64.whl", hash = "sha256:99b14dbea2fdb563d8b5a57c9badfcd72083f6006caf8e126b491519c7d64ca8"}, + {file = "pydantic_core-2.14.6-cp39-cp39-macosx_10_7_x86_64.whl", hash = "sha256:4ce8299b481bcb68e5c82002b96e411796b844d72b3e92a3fbedfe8e19813eab"}, + {file = "pydantic_core-2.14.6-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b9a9d92f10772d2a181b5ca339dee066ab7d1c9a34ae2421b2a52556e719756f"}, + {file = "pydantic_core-2.14.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fd9e98b408384989ea4ab60206b8e100d8687da18b5c813c11e92fd8212a98e0"}, + {file = "pydantic_core-2.14.6-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4f86f1f318e56f5cbb282fe61eb84767aee743ebe32c7c0834690ebea50c0a6b"}, + {file = "pydantic_core-2.14.6-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:86ce5fcfc3accf3a07a729779d0b86c5d0309a4764c897d86c11089be61da160"}, + {file = "pydantic_core-2.14.6-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3dcf1978be02153c6a31692d4fbcc2a3f1db9da36039ead23173bc256ee3b91b"}, + {file = "pydantic_core-2.14.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eedf97be7bc3dbc8addcef4142f4b4164066df0c6f36397ae4aaed3eb187d8ab"}, + {file = "pydantic_core-2.14.6-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d5f916acf8afbcab6bacbb376ba7dc61f845367901ecd5e328fc4d4aef2fcab0"}, + {file = "pydantic_core-2.14.6-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:8a14c192c1d724c3acbfb3f10a958c55a2638391319ce8078cb36c02283959b9"}, + {file = "pydantic_core-2.14.6-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:0348b1dc6b76041516e8a854ff95b21c55f5a411c3297d2ca52f5528e49d8411"}, + {file = "pydantic_core-2.14.6-cp39-none-win32.whl", hash = "sha256:de2a0645a923ba57c5527497daf8ec5df69c6eadf869e9cd46e86349146e5975"}, + {file = "pydantic_core-2.14.6-cp39-none-win_amd64.whl", hash = "sha256:aca48506a9c20f68ee61c87f2008f81f8ee99f8d7f0104bff3c47e2d148f89d9"}, + {file = "pydantic_core-2.14.6-pp310-pypy310_pp73-macosx_10_7_x86_64.whl", hash = "sha256:d5c28525c19f5bb1e09511669bb57353d22b94cf8b65f3a8d141c389a55dec95"}, + {file = "pydantic_core-2.14.6-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:78d0768ee59baa3de0f4adac9e3748b4b1fffc52143caebddfd5ea2961595277"}, + {file = "pydantic_core-2.14.6-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8b93785eadaef932e4fe9c6e12ba67beb1b3f1e5495631419c784ab87e975670"}, + {file = "pydantic_core-2.14.6-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a874f21f87c485310944b2b2734cd6d318765bcbb7515eead33af9641816506e"}, + {file = "pydantic_core-2.14.6-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b89f4477d915ea43b4ceea6756f63f0288941b6443a2b28c69004fe07fde0d0d"}, + {file = "pydantic_core-2.14.6-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:172de779e2a153d36ee690dbc49c6db568d7b33b18dc56b69a7514aecbcf380d"}, + {file = "pydantic_core-2.14.6-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:dfcebb950aa7e667ec226a442722134539e77c575f6cfaa423f24371bb8d2e94"}, + {file = "pydantic_core-2.14.6-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:55a23dcd98c858c0db44fc5c04fc7ed81c4b4d33c653a7c45ddaebf6563a2f66"}, + {file = "pydantic_core-2.14.6-pp37-pypy37_pp73-macosx_10_7_x86_64.whl", hash = "sha256:4241204e4b36ab5ae466ecec5c4c16527a054c69f99bba20f6f75232a6a534e2"}, + {file = "pydantic_core-2.14.6-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e574de99d735b3fc8364cba9912c2bec2da78775eba95cbb225ef7dda6acea24"}, + {file = "pydantic_core-2.14.6-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1302a54f87b5cd8528e4d6d1bf2133b6aa7c6122ff8e9dc5220fbc1e07bffebd"}, + {file = "pydantic_core-2.14.6-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f8e81e4b55930e5ffab4a68db1af431629cf2e4066dbdbfef65348b8ab804ea8"}, + {file = "pydantic_core-2.14.6-pp37-pypy37_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:c99462ffc538717b3e60151dfaf91125f637e801f5ab008f81c402f1dff0cd0f"}, + {file = "pydantic_core-2.14.6-pp37-pypy37_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:e4cf2d5829f6963a5483ec01578ee76d329eb5caf330ecd05b3edd697e7d768a"}, + {file = "pydantic_core-2.14.6-pp38-pypy38_pp73-macosx_10_7_x86_64.whl", hash = "sha256:cf10b7d58ae4a1f07fccbf4a0a956d705356fea05fb4c70608bb6fa81d103cda"}, + {file = "pydantic_core-2.14.6-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:399ac0891c284fa8eb998bcfa323f2234858f5d2efca3950ae58c8f88830f145"}, + {file = "pydantic_core-2.14.6-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9c6a5c79b28003543db3ba67d1df336f253a87d3112dac3a51b94f7d48e4c0e1"}, + {file = "pydantic_core-2.14.6-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:599c87d79cab2a6a2a9df4aefe0455e61e7d2aeede2f8577c1b7c0aec643ee8e"}, + {file = "pydantic_core-2.14.6-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:43e166ad47ba900f2542a80d83f9fc65fe99eb63ceec4debec160ae729824052"}, + {file = "pydantic_core-2.14.6-pp38-pypy38_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:3a0b5db001b98e1c649dd55afa928e75aa4087e587b9524a4992316fa23c9fba"}, + {file = "pydantic_core-2.14.6-pp38-pypy38_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:747265448cb57a9f37572a488a57d873fd96bf51e5bb7edb52cfb37124516da4"}, + {file = "pydantic_core-2.14.6-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:7ebe3416785f65c28f4f9441e916bfc8a54179c8dea73c23023f7086fa601c5d"}, + {file = "pydantic_core-2.14.6-pp39-pypy39_pp73-macosx_10_7_x86_64.whl", hash = "sha256:86c963186ca5e50d5c8287b1d1c9d3f8f024cbe343d048c5bd282aec2d8641f2"}, + {file = "pydantic_core-2.14.6-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:e0641b506486f0b4cd1500a2a65740243e8670a2549bb02bc4556a83af84ae03"}, + {file = "pydantic_core-2.14.6-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:71d72ca5eaaa8d38c8df16b7deb1a2da4f650c41b58bb142f3fb75d5ad4a611f"}, + {file = "pydantic_core-2.14.6-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:27e524624eace5c59af499cd97dc18bb201dc6a7a2da24bfc66ef151c69a5f2a"}, + {file = "pydantic_core-2.14.6-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a3dde6cac75e0b0902778978d3b1646ca9f438654395a362cb21d9ad34b24acf"}, + {file = "pydantic_core-2.14.6-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:00646784f6cd993b1e1c0e7b0fdcbccc375d539db95555477771c27555e3c556"}, + {file = "pydantic_core-2.14.6-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:23598acb8ccaa3d1d875ef3b35cb6376535095e9405d91a3d57a8c7db5d29341"}, + {file = "pydantic_core-2.14.6-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7f41533d7e3cf9520065f610b41ac1c76bc2161415955fbcead4981b22c7611e"}, + {file = "pydantic_core-2.14.6.tar.gz", hash = "sha256:1fd0c1d395372843fba13a51c28e3bb9d59bd7aebfeb17358ffaaa1e4dbbe948"}, +] + +[package.dependencies] +typing-extensions = ">=4.6.0,<4.7.0 || >4.7.0" + +[[package]] +name = "pyflakes" +version = "2.5.0" +description = "passive checker of Python programs" +optional = false +python-versions = ">=3.6" +files = [ + {file = "pyflakes-2.5.0-py2.py3-none-any.whl", hash = "sha256:4579f67d887f804e67edb544428f264b7b24f435b263c4614f384135cea553d2"}, + {file = "pyflakes-2.5.0.tar.gz", hash = "sha256:491feb020dca48ccc562a8c0cbe8df07ee13078df59813b83959cbdada312ea3"}, +] + +[[package]] +name = "pytest" +version = "7.4.4" +description = "pytest: simple powerful testing with Python" +optional = false +python-versions = ">=3.7" +files = [ + {file = "pytest-7.4.4-py3-none-any.whl", hash = "sha256:b090cdf5ed60bf4c45261be03239c2c1c22df034fbffe691abe93cd80cea01d8"}, + {file = "pytest-7.4.4.tar.gz", hash = "sha256:2cf0005922c6ace4a3e2ec8b4080eb0d9753fdc93107415332f50ce9e7994280"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "sys_platform == \"win32\""} +exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""} +importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""} +iniconfig = "*" +packaging = "*" +pluggy = ">=0.12,<2.0" +tomli = {version = ">=1.0.0", markers = "python_version < \"3.11\""} + +[package.extras] +testing = ["argcomplete", "attrs (>=19.2.0)", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] + +[[package]] +name = "python-dateutil" +version = "2.9.0.post0" +description = "Extensions to the standard Python datetime module" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" +files = [ + {file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"}, + {file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"}, +] + +[package.dependencies] +six = ">=1.5" + +[[package]] +name = "six" +version = "1.16.0" +description = "Python 2 and 3 compatibility utilities" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" +files = [ + {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, + {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, +] + +[[package]] +name = "tomli" +version = "2.0.1" +description = "A lil' TOML parser" +optional = false +python-versions = ">=3.7" +files = [ + {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"}, + {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, +] + +[[package]] +name = "tox" +version = "3.28.0" +description = "tox is a generic virtualenv management and test command line tool" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" +files = [ + {file = "tox-3.28.0-py2.py3-none-any.whl", hash = "sha256:57b5ab7e8bb3074edc3c0c0b4b192a4f3799d3723b2c5b76f1fa9f2d40316eea"}, + {file = "tox-3.28.0.tar.gz", hash = "sha256:d0d28f3fe6d6d7195c27f8b054c3e99d5451952b54abdae673b71609a581f640"}, +] + +[package.dependencies] +colorama = {version = ">=0.4.1", markers = "platform_system == \"Windows\""} +filelock = ">=3.0.0" +importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""} +packaging = ">=14" +pluggy = ">=0.12.0" +py = ">=1.4.17" +six = ">=1.14.0" +tomli = {version = ">=2.0.1", markers = "python_version >= \"3.7\" and python_version < \"3.11\""} +virtualenv = ">=16.0.0,<20.0.0 || >20.0.0,<20.0.1 || >20.0.1,<20.0.2 || >20.0.2,<20.0.3 || >20.0.3,<20.0.4 || >20.0.4,<20.0.5 || >20.0.5,<20.0.6 || >20.0.6,<20.0.7 || >20.0.7" + +[package.extras] +docs = ["pygments-github-lexers (>=0.0.5)", "sphinx (>=2.0.0)", "sphinxcontrib-autoprogram (>=0.1.5)", "towncrier (>=18.5.0)"] +testing = ["flaky (>=3.4.0)", "freezegun (>=0.3.11)", "pathlib2 (>=2.3.3)", "psutil (>=5.6.1)", "pytest (>=4.0.0)", "pytest-cov (>=2.5.1)", "pytest-mock (>=1.10.0)", "pytest-randomly (>=1.0.0)"] + +[[package]] +name = "typed-ast" +version = "1.5.5" +description = "a fork of Python 2 and 3 ast modules with type comment support" +optional = false +python-versions = ">=3.6" +files = [ + {file = "typed_ast-1.5.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:4bc1efe0ce3ffb74784e06460f01a223ac1f6ab31c6bc0376a21184bf5aabe3b"}, + {file = "typed_ast-1.5.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5f7a8c46a8b333f71abd61d7ab9255440d4a588f34a21f126bbfc95f6049e686"}, + {file = "typed_ast-1.5.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:597fc66b4162f959ee6a96b978c0435bd63791e31e4f410622d19f1686d5e769"}, + {file = "typed_ast-1.5.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d41b7a686ce653e06c2609075d397ebd5b969d821b9797d029fccd71fdec8e04"}, + {file = "typed_ast-1.5.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:5fe83a9a44c4ce67c796a1b466c270c1272e176603d5e06f6afbc101a572859d"}, + {file = "typed_ast-1.5.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:d5c0c112a74c0e5db2c75882a0adf3133adedcdbfd8cf7c9d6ed77365ab90a1d"}, + {file = "typed_ast-1.5.5-cp310-cp310-win_amd64.whl", hash = "sha256:e1a976ed4cc2d71bb073e1b2a250892a6e968ff02aa14c1f40eba4f365ffec02"}, + {file = "typed_ast-1.5.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c631da9710271cb67b08bd3f3813b7af7f4c69c319b75475436fcab8c3d21bee"}, + {file = "typed_ast-1.5.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:b445c2abfecab89a932b20bd8261488d574591173d07827c1eda32c457358b18"}, + {file = "typed_ast-1.5.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cc95ffaaab2be3b25eb938779e43f513e0e538a84dd14a5d844b8f2932593d88"}, + {file = "typed_ast-1.5.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:61443214d9b4c660dcf4b5307f15c12cb30bdfe9588ce6158f4a005baeb167b2"}, + {file = "typed_ast-1.5.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:6eb936d107e4d474940469e8ec5b380c9b329b5f08b78282d46baeebd3692dc9"}, + {file = "typed_ast-1.5.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e48bf27022897577d8479eaed64701ecaf0467182448bd95759883300ca818c8"}, + {file = "typed_ast-1.5.5-cp311-cp311-win_amd64.whl", hash = "sha256:83509f9324011c9a39faaef0922c6f720f9623afe3fe220b6d0b15638247206b"}, + {file = "typed_ast-1.5.5-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:44f214394fc1af23ca6d4e9e744804d890045d1643dd7e8229951e0ef39429b5"}, + {file = "typed_ast-1.5.5-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:118c1ce46ce58fda78503eae14b7664163aa735b620b64b5b725453696f2a35c"}, + {file = "typed_ast-1.5.5-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:be4919b808efa61101456e87f2d4c75b228f4e52618621c77f1ddcaae15904fa"}, + {file = "typed_ast-1.5.5-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:fc2b8c4e1bc5cd96c1a823a885e6b158f8451cf6f5530e1829390b4d27d0807f"}, + {file = "typed_ast-1.5.5-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:16f7313e0a08c7de57f2998c85e2a69a642e97cb32f87eb65fbfe88381a5e44d"}, + {file = "typed_ast-1.5.5-cp36-cp36m-win_amd64.whl", hash = "sha256:2b946ef8c04f77230489f75b4b5a4a6f24c078be4aed241cfabe9cbf4156e7e5"}, + {file = "typed_ast-1.5.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:2188bc33d85951ea4ddad55d2b35598b2709d122c11c75cffd529fbc9965508e"}, + {file = "typed_ast-1.5.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0635900d16ae133cab3b26c607586131269f88266954eb04ec31535c9a12ef1e"}, + {file = "typed_ast-1.5.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:57bfc3cf35a0f2fdf0a88a3044aafaec1d2f24d8ae8cd87c4f58d615fb5b6311"}, + {file = "typed_ast-1.5.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:fe58ef6a764de7b4b36edfc8592641f56e69b7163bba9f9c8089838ee596bfb2"}, + {file = "typed_ast-1.5.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:d09d930c2d1d621f717bb217bf1fe2584616febb5138d9b3e8cdd26506c3f6d4"}, + {file = "typed_ast-1.5.5-cp37-cp37m-win_amd64.whl", hash = "sha256:d40c10326893ecab8a80a53039164a224984339b2c32a6baf55ecbd5b1df6431"}, + {file = "typed_ast-1.5.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:fd946abf3c31fb50eee07451a6aedbfff912fcd13cf357363f5b4e834cc5e71a"}, + {file = "typed_ast-1.5.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:ed4a1a42df8a3dfb6b40c3d2de109e935949f2f66b19703eafade03173f8f437"}, + {file = "typed_ast-1.5.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:045f9930a1550d9352464e5149710d56a2aed23a2ffe78946478f7b5416f1ede"}, + {file = "typed_ast-1.5.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:381eed9c95484ceef5ced626355fdc0765ab51d8553fec08661dce654a935db4"}, + {file = "typed_ast-1.5.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:bfd39a41c0ef6f31684daff53befddae608f9daf6957140228a08e51f312d7e6"}, + {file = "typed_ast-1.5.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8c524eb3024edcc04e288db9541fe1f438f82d281e591c548903d5b77ad1ddd4"}, + {file = "typed_ast-1.5.5-cp38-cp38-win_amd64.whl", hash = "sha256:7f58fabdde8dcbe764cef5e1a7fcb440f2463c1bbbec1cf2a86ca7bc1f95184b"}, + {file = "typed_ast-1.5.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:042eb665ff6bf020dd2243307d11ed626306b82812aba21836096d229fdc6a10"}, + {file = "typed_ast-1.5.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:622e4a006472b05cf6ef7f9f2636edc51bda670b7bbffa18d26b255269d3d814"}, + {file = "typed_ast-1.5.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1efebbbf4604ad1283e963e8915daa240cb4bf5067053cf2f0baadc4d4fb51b8"}, + {file = "typed_ast-1.5.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f0aefdd66f1784c58f65b502b6cf8b121544680456d1cebbd300c2c813899274"}, + {file = "typed_ast-1.5.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:48074261a842acf825af1968cd912f6f21357316080ebaca5f19abbb11690c8a"}, + {file = "typed_ast-1.5.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:429ae404f69dc94b9361bb62291885894b7c6fb4640d561179548c849f8492ba"}, + {file = "typed_ast-1.5.5-cp39-cp39-win_amd64.whl", hash = "sha256:335f22ccb244da2b5c296e6f96b06ee9bed46526db0de38d2f0e5a6597b81155"}, + {file = "typed_ast-1.5.5.tar.gz", hash = "sha256:94282f7a354f36ef5dbce0ef3467ebf6a258e370ab33d5b40c249fa996e590dd"}, +] + +[[package]] +name = "types-python-dateutil" +version = "2.8.19.14" +description = "Typing stubs for python-dateutil" +optional = false +python-versions = "*" +files = [ + {file = "types-python-dateutil-2.8.19.14.tar.gz", hash = "sha256:1f4f10ac98bb8b16ade9dbee3518d9ace017821d94b057a425b069f834737f4b"}, + {file = "types_python_dateutil-2.8.19.14-py3-none-any.whl", hash = "sha256:f977b8de27787639986b4e28963263fd0e5158942b3ecef91b9335c130cb1ce9"}, +] + +[[package]] +name = "typing-extensions" +version = "4.7.1" +description = "Backported and Experimental Type Hints for Python 3.7+" +optional = false +python-versions = ">=3.7" +files = [ + {file = "typing_extensions-4.7.1-py3-none-any.whl", hash = "sha256:440d5dd3af93b060174bf433bccd69b0babc3b15b1a8dca43789fd7f61514b36"}, + {file = "typing_extensions-4.7.1.tar.gz", hash = "sha256:b75ddc264f0ba5615db7ba217daeb99701ad295353c45f9e95963337ceeeffb2"}, +] + +[[package]] +name = "urllib3" +version = "2.0.7" +description = "HTTP library with thread-safe connection pooling, file post, and more." +optional = false +python-versions = ">=3.7" +files = [ + {file = "urllib3-2.0.7-py3-none-any.whl", hash = "sha256:fdb6d215c776278489906c2f8916e6e7d4f5a9b602ccbcfdf7f016fc8da0596e"}, + {file = "urllib3-2.0.7.tar.gz", hash = "sha256:c97dfde1f7bd43a71c8d2a58e369e9b2bf692d1334ea9f9cae55add7d0dd0f84"}, +] + +[package.extras] +brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] +secure = ["certifi", "cryptography (>=1.9)", "idna (>=2.0.0)", "pyopenssl (>=17.1.0)", "urllib3-secure-extra"] +socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] +zstd = ["zstandard (>=0.18.0)"] + +[[package]] +name = "virtualenv" +version = "20.16.2" +description = "Virtual Python Environment builder" +optional = false +python-versions = ">=3.6" +files = [ + {file = "virtualenv-20.16.2-py2.py3-none-any.whl", hash = "sha256:635b272a8e2f77cb051946f46c60a54ace3cb5e25568228bd6b57fc70eca9ff3"}, + {file = "virtualenv-20.16.2.tar.gz", hash = "sha256:0ef5be6d07181946891f5abc8047fda8bc2f0b4b9bf222c64e6e8963baee76db"}, +] + +[package.dependencies] +distlib = ">=0.3.1,<1" +filelock = ">=3.2,<4" +importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""} +platformdirs = ">=2,<3" + +[package.extras] +docs = ["proselint (>=0.10.2)", "sphinx (>=3)", "sphinx-argparse (>=0.2.5)", "sphinx-rtd-theme (>=0.4.3)", "towncrier (>=21.3)"] +testing = ["coverage (>=4)", "coverage-enable-subprocess (>=1)", "flaky (>=3)", "packaging (>=20.0)", "pytest (>=4)", "pytest-env (>=0.6.2)", "pytest-freezegun (>=0.4.1)", "pytest-mock (>=2)", "pytest-randomly (>=1)", "pytest-timeout (>=1)"] + +[[package]] +name = "zipp" +version = "3.15.0" +description = "Backport of pathlib-compatible object wrapper for zip files" +optional = false +python-versions = ">=3.7" +files = [ + {file = "zipp-3.15.0-py3-none-any.whl", hash = "sha256:48904fc76a60e542af151aded95726c1a5c34ed43ab4134b597665c86d7ad556"}, + {file = "zipp-3.15.0.tar.gz", hash = "sha256:112929ad649da941c23de50f356a2b5570c954b65150642bccdd66bf194d224b"}, +] + +[package.extras] +docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +testing = ["big-O", "flake8 (<5)", "jaraco.functools", "jaraco.itertools", "more-itertools", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)"] + +[metadata] +lock-version = "2.0" +python-versions = "^3.7" +content-hash = "131cde68a6e4a2aa7dffb9d7dc622b0b20282f3813e9d097d058c26174c83868" diff --git a/unity_sps_ogc_processes_api_python_client/api/default_api.py b/unity_sps_ogc_processes_api_python_client/api/default_api.py index 7195b7c..0f12ffb 100644 --- a/unity_sps_ogc_processes_api_python_client/api/default_api.py +++ b/unity_sps_ogc_processes_api_python_client/api/default_api.py @@ -268,6 +268,7 @@ def _conformance_declaration_conformance_get_serialize( # authentication setting _auth_settings: List[str] = [ + 'bearerAuth' ] return self.api_client.param_serialize( @@ -528,6 +529,7 @@ def _dismiss_jobs_job_id_delete_serialize( # authentication setting _auth_settings: List[str] = [ + 'bearerAuth' ] return self.api_client.param_serialize( @@ -816,6 +818,7 @@ def _execute_processes_process_id_execution_post_serialize( # authentication setting _auth_settings: List[str] = [ + 'bearerAuth' ] return self.api_client.param_serialize( @@ -1058,6 +1061,7 @@ def _get_health_health_get_serialize( # authentication setting _auth_settings: List[str] = [ + 'bearerAuth' ] return self.api_client.param_serialize( @@ -1300,6 +1304,7 @@ def _job_list_jobs_get_serialize( # authentication setting _auth_settings: List[str] = [ + 'bearerAuth' ] return self.api_client.param_serialize( @@ -1542,6 +1547,7 @@ def _landing_page_get_serialize( # authentication setting _auth_settings: List[str] = [ + 'bearerAuth' ] return self.api_client.param_serialize( @@ -1802,6 +1808,7 @@ def _process_description_processes_process_id_get_serialize( # authentication setting _auth_settings: List[str] = [ + 'bearerAuth' ] return self.api_client.param_serialize( @@ -2044,6 +2051,7 @@ def _process_list_processes_get_serialize( # authentication setting _auth_settings: List[str] = [ + 'bearerAuth' ] return self.api_client.param_serialize( @@ -2317,6 +2325,7 @@ def _register_process_processes_post_serialize( # authentication setting _auth_settings: List[str] = [ + 'bearerAuth' ] return self.api_client.param_serialize( @@ -2577,6 +2586,7 @@ def _results_jobs_job_id_results_get_serialize( # authentication setting _auth_settings: List[str] = [ + 'bearerAuth' ] return self.api_client.param_serialize( @@ -2837,6 +2847,7 @@ def _status_jobs_job_id_get_serialize( # authentication setting _auth_settings: List[str] = [ + 'bearerAuth' ] return self.api_client.param_serialize( @@ -3097,6 +3108,7 @@ def _unregister_process_processes_process_id_delete_serialize( # authentication setting _auth_settings: List[str] = [ + 'bearerAuth' ] return self.api_client.param_serialize( diff --git a/unity_sps_ogc_processes_api_python_client/configuration.py b/unity_sps_ogc_processes_api_python_client/configuration.py index e45333a..833ee4c 100644 --- a/unity_sps_ogc_processes_api_python_client/configuration.py +++ b/unity_sps_ogc_processes_api_python_client/configuration.py @@ -55,6 +55,7 @@ class Configuration: :param ssl_ca_cert: str - the path to a file of concatenated CA certificates in PEM format. + :Example: """ _default = None @@ -359,6 +360,14 @@ def auth_settings(self): :return: The Auth Settings information dict. """ auth = {} + if self.access_token is not None: + auth['bearerAuth'] = { + 'type': 'bearer', + 'in': 'header', + 'format': 'JWT', + 'key': 'Authorization', + 'value': 'Bearer ' + self.access_token + } return auth def to_debug_report(self): From 036107995c19b8e0246061de26cb6173f91340e6 Mon Sep 17 00:00:00 2001 From: mike-gangl Date: Thu, 9 May 2024 09:34:06 -0700 Subject: [PATCH 2/2] added '# noqa: F821' to AnyOf lines to bypass pyflake errors detailed at https://stackoverflow.com/questions/67547135/why-does-flake8-give-the-warning-f821-undefined-name-match-when-using-match our version of pyflake might be ~2.5 which is right around when a fix was introduced. i'm not necessarily worried about this issue but i hate flake workarounds. --- unity_sps_ogc_processes_api_python_client/models/execute.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/unity_sps_ogc_processes_api_python_client/models/execute.py b/unity_sps_ogc_processes_api_python_client/models/execute.py index 6ec2820..76152c2 100644 --- a/unity_sps_ogc_processes_api_python_client/models/execute.py +++ b/unity_sps_ogc_processes_api_python_client/models/execute.py @@ -107,8 +107,8 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: return cls.model_validate(obj) _obj = cls.model_validate({ - "inputs": AnyOf.from_dict(obj["inputs"]) if obj.get("inputs") is not None else None, - "outputs": AnyOf.from_dict(obj["outputs"]) if obj.get("outputs") is not None else None, + "inputs": AnyOf.from_dict(obj["inputs"]) if obj.get("inputs") is not None else None, # noqa: F821 + "outputs": AnyOf.from_dict(obj["outputs"]) if obj.get("outputs") is not None else None, # noqa: F821 "subscriber": Subscriber.from_dict(obj["subscriber"]) if obj.get("subscriber") is not None else None }) return _obj