restpki-ng-python-client 0.9.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- restpki_ng_python_client/__init__.py +200 -0
- restpki_ng_python_client/api/__init__.py +17 -0
- restpki_ng_python_client/api/authentication_api.py +2041 -0
- restpki_ng_python_client/api/cades_signature_api.py +2376 -0
- restpki_ng_python_client/api/document_keys_api.py +1199 -0
- restpki_ng_python_client/api/documents_api.py +868 -0
- restpki_ng_python_client/api/pades_signature_api.py +1797 -0
- restpki_ng_python_client/api/pades_visual_positioning_presets_api.py +869 -0
- restpki_ng_python_client/api/pdf_api.py +334 -0
- restpki_ng_python_client/api/signature_api.py +624 -0
- restpki_ng_python_client/api/signature_inspection_api.py +337 -0
- restpki_ng_python_client/api/signature_sessions_api.py +891 -0
- restpki_ng_python_client/api/timestamp_api.py +654 -0
- restpki_ng_python_client/api/upload_api.py +1124 -0
- restpki_ng_python_client/api/xml_signature_api.py +1781 -0
- restpki_ng_python_client/api_client.py +741 -0
- restpki_ng_python_client/api_response.py +21 -0
- restpki_ng_python_client/configuration.py +426 -0
- restpki_ng_python_client/exceptions.py +166 -0
- restpki_ng_python_client/file_utils.py +122 -0
- restpki_ng_python_client/models/__init__.py +165 -0
- restpki_ng_python_client/models/allocate_document_key_batch_request.py +96 -0
- restpki_ng_python_client/models/allocate_document_key_request.py +93 -0
- restpki_ng_python_client/models/attribute_certificate_model.py +141 -0
- restpki_ng_python_client/models/audit_package_options.py +90 -0
- restpki_ng_python_client/models/authentication_failures.py +45 -0
- restpki_ng_python_client/models/authentication_get_response.py +92 -0
- restpki_ng_python_client/models/authentication_post_request.py +116 -0
- restpki_ng_python_client/models/authentication_post_response.py +98 -0
- restpki_ng_python_client/models/authentications_post_request.py +95 -0
- restpki_ng_python_client/models/authentications_post_response.py +114 -0
- restpki_ng_python_client/models/authentications_post_signed_bytes_request.py +99 -0
- restpki_ng_python_client/models/authentications_post_signed_bytes_response.py +98 -0
- restpki_ng_python_client/models/auto_positioning_horizontal_directions.py +45 -0
- restpki_ng_python_client/models/auto_positioning_vertical_directions.py +45 -0
- restpki_ng_python_client/models/blockchains.py +45 -0
- restpki_ng_python_client/models/cades_signature_model.py +123 -0
- restpki_ng_python_client/models/cades_signature_post_request_v1.py +137 -0
- restpki_ng_python_client/models/cades_signature_post_request_v2.py +152 -0
- restpki_ng_python_client/models/cades_signature_post_request_v3.py +149 -0
- restpki_ng_python_client/models/cades_signature_post_response.py +120 -0
- restpki_ng_python_client/models/cades_signature_post_signed_bytes_request.py +92 -0
- restpki_ng_python_client/models/cades_signature_post_signed_bytes_response.py +106 -0
- restpki_ng_python_client/models/cades_signer_model.py +159 -0
- restpki_ng_python_client/models/cades_timestamp_model.py +140 -0
- restpki_ng_python_client/models/certificate_model.py +197 -0
- restpki_ng_python_client/models/certificate_reference_model.py +99 -0
- restpki_ng_python_client/models/certificate_requirement.py +95 -0
- restpki_ng_python_client/models/certificate_requirement_types.py +45 -0
- restpki_ng_python_client/models/certificate_summary.py +142 -0
- restpki_ng_python_client/models/certified_attribute_model.py +94 -0
- restpki_ng_python_client/models/certified_attribute_types.py +44 -0
- restpki_ng_python_client/models/cms_content_types.py +50 -0
- restpki_ng_python_client/models/cms_signature_options.py +109 -0
- restpki_ng_python_client/models/color_model.py +98 -0
- restpki_ng_python_client/models/commitment_type_model.py +99 -0
- restpki_ng_python_client/models/complete_authentication_request.py +93 -0
- restpki_ng_python_client/models/complete_authentication_response.py +103 -0
- restpki_ng_python_client/models/complete_signature_request.py +95 -0
- restpki_ng_python_client/models/complete_signature_request_v2.py +91 -0
- restpki_ng_python_client/models/create_signature_session_request.py +161 -0
- restpki_ng_python_client/models/create_signature_session_response.py +95 -0
- restpki_ng_python_client/models/digest_algorithm_and_value_model.py +103 -0
- restpki_ng_python_client/models/digest_algorithms.py +49 -0
- restpki_ng_python_client/models/document_file_model.py +137 -0
- restpki_ng_python_client/models/document_key_model.py +100 -0
- restpki_ng_python_client/models/document_key_query_response.py +110 -0
- restpki_ng_python_client/models/document_key_summary.py +100 -0
- restpki_ng_python_client/models/document_model.py +150 -0
- restpki_ng_python_client/models/document_query_response.py +93 -0
- restpki_ng_python_client/models/document_status.py +47 -0
- restpki_ng_python_client/models/document_summary.py +128 -0
- restpki_ng_python_client/models/error_model_v2.py +120 -0
- restpki_ng_python_client/models/file_model.py +114 -0
- restpki_ng_python_client/models/file_reference_model.py +137 -0
- restpki_ng_python_client/models/full_xml_signature_post_request.py +136 -0
- restpki_ng_python_client/models/general_name_choices.py +52 -0
- restpki_ng_python_client/models/general_name_model.py +108 -0
- restpki_ng_python_client/models/holder_types.py +45 -0
- restpki_ng_python_client/models/inspect_signature_failures.py +44 -0
- restpki_ng_python_client/models/inspect_signature_request.py +127 -0
- restpki_ng_python_client/models/inspect_signature_response.py +131 -0
- restpki_ng_python_client/models/multipart_upload_begin_response.py +95 -0
- restpki_ng_python_client/models/multipart_upload_end_request.py +95 -0
- restpki_ng_python_client/models/name_model.py +205 -0
- restpki_ng_python_client/models/namespace_model.py +99 -0
- restpki_ng_python_client/models/open_cades_signature_request_model.py +147 -0
- restpki_ng_python_client/models/open_signature_request_model.py +145 -0
- restpki_ng_python_client/models/open_xml_signature_request_model.py +151 -0
- restpki_ng_python_client/models/other_name_model.py +107 -0
- restpki_ng_python_client/models/pades_certification_level.py +47 -0
- restpki_ng_python_client/models/pades_horizontal_align.py +46 -0
- restpki_ng_python_client/models/pades_measurement_units.py +45 -0
- restpki_ng_python_client/models/pades_page_optimization_model.py +98 -0
- restpki_ng_python_client/models/pades_signature_model.py +113 -0
- restpki_ng_python_client/models/pades_signature_post_request_v1.py +167 -0
- restpki_ng_python_client/models/pades_signature_post_request_v2.py +171 -0
- restpki_ng_python_client/models/pades_signature_post_response.py +120 -0
- restpki_ng_python_client/models/pades_signature_post_signed_bytes_request.py +92 -0
- restpki_ng_python_client/models/pades_signature_post_signed_bytes_response.py +106 -0
- restpki_ng_python_client/models/pades_signer_model.py +168 -0
- restpki_ng_python_client/models/pades_size_model.py +89 -0
- restpki_ng_python_client/models/pades_text_horizontal_align.py +45 -0
- restpki_ng_python_client/models/pades_vertical_align.py +46 -0
- restpki_ng_python_client/models/pades_visual_auto_positioning_model.py +106 -0
- restpki_ng_python_client/models/pades_visual_image_model.py +105 -0
- restpki_ng_python_client/models/pades_visual_positioning_model.py +109 -0
- restpki_ng_python_client/models/pades_visual_rectangle_model.py +127 -0
- restpki_ng_python_client/models/pades_visual_representation_model.py +103 -0
- restpki_ng_python_client/models/pades_visual_text_model.py +111 -0
- restpki_ng_python_client/models/page_orientations.py +46 -0
- restpki_ng_python_client/models/paper_sizes.py +56 -0
- restpki_ng_python_client/models/pdf_add_marks_request.py +117 -0
- restpki_ng_python_client/models/pdf_add_marks_response.py +91 -0
- restpki_ng_python_client/models/pdf_container_definition.py +208 -0
- restpki_ng_python_client/models/pdf_helper.py +43 -0
- restpki_ng_python_client/models/pdf_mark_element_model.py +230 -0
- restpki_ng_python_client/models/pdf_mark_element_type.py +46 -0
- restpki_ng_python_client/models/pdf_mark_image_model.py +98 -0
- restpki_ng_python_client/models/pdf_mark_model.py +168 -0
- restpki_ng_python_client/models/pdf_mark_page_options.py +47 -0
- restpki_ng_python_client/models/pdf_signature_options.py +101 -0
- restpki_ng_python_client/models/pdf_text_section_model.py +125 -0
- restpki_ng_python_client/models/pdf_text_style.py +46 -0
- restpki_ng_python_client/models/pki_brazil_certificate_model.py +159 -0
- restpki_ng_python_client/models/pki_brazil_certificate_types.py +54 -0
- restpki_ng_python_client/models/pki_italy_certificate_model.py +103 -0
- restpki_ng_python_client/models/pki_italy_certificate_types.py +46 -0
- restpki_ng_python_client/models/prepare_authentication_request.py +100 -0
- restpki_ng_python_client/models/prepare_authentication_response.py +99 -0
- restpki_ng_python_client/models/prepare_signature_failures.py +46 -0
- restpki_ng_python_client/models/prepare_signature_request.py +133 -0
- restpki_ng_python_client/models/prepare_signature_response.py +116 -0
- restpki_ng_python_client/models/resource_content_or_reference.py +107 -0
- restpki_ng_python_client/models/role_attribute_model.py +114 -0
- restpki_ng_python_client/models/session_completion_status.py +89 -0
- restpki_ng_python_client/models/signature_algorithm_and_value_model.py +106 -0
- restpki_ng_python_client/models/signature_algorithm_identifier.py +88 -0
- restpki_ng_python_client/models/signature_algorithms.py +48 -0
- restpki_ng_python_client/models/signature_b_stamp_model.py +135 -0
- restpki_ng_python_client/models/signature_policy_identifier_model.py +105 -0
- restpki_ng_python_client/models/signature_result_model.py +105 -0
- restpki_ng_python_client/models/signature_session_document_data.py +128 -0
- restpki_ng_python_client/models/signature_session_document_summary.py +138 -0
- restpki_ng_python_client/models/signature_session_model.py +126 -0
- restpki_ng_python_client/models/signature_session_status.py +49 -0
- restpki_ng_python_client/models/signature_types.py +46 -0
- restpki_ng_python_client/models/signer_b_stamp_model.py +132 -0
- restpki_ng_python_client/models/signer_model.py +187 -0
- restpki_ng_python_client/models/signer_summary.py +94 -0
- restpki_ng_python_client/models/timestamp_issue_response.py +99 -0
- restpki_ng_python_client/models/validation_item_model.py +111 -0
- restpki_ng_python_client/models/validation_item_types.py +91 -0
- restpki_ng_python_client/models/validation_results_model.py +131 -0
- restpki_ng_python_client/models/webhook_event_model.py +94 -0
- restpki_ng_python_client/models/webhook_event_types.py +44 -0
- restpki_ng_python_client/models/xml_attribute_model.py +107 -0
- restpki_ng_python_client/models/xml_element_location_model.py +111 -0
- restpki_ng_python_client/models/xml_element_model.py +115 -0
- restpki_ng_python_client/models/xml_element_signature_post_request.py +145 -0
- restpki_ng_python_client/models/xml_id_attribute_model.py +96 -0
- restpki_ng_python_client/models/xml_id_resolution_table_model.py +123 -0
- restpki_ng_python_client/models/xml_insertion_options.py +47 -0
- restpki_ng_python_client/models/xml_node_name_model.py +96 -0
- restpki_ng_python_client/models/xml_signature_model.py +154 -0
- restpki_ng_python_client/models/xml_signature_options.py +102 -0
- restpki_ng_python_client/models/xml_signature_post_response.py +120 -0
- restpki_ng_python_client/models/xml_signature_post_signed_bytes_request.py +92 -0
- restpki_ng_python_client/models/xml_signature_post_signed_bytes_response.py +106 -0
- restpki_ng_python_client/models/xml_signature_response_model.py +113 -0
- restpki_ng_python_client/models/xml_signature_types.py +47 -0
- restpki_ng_python_client/models/xml_signed_entity_types.py +46 -0
- restpki_ng_python_client/py.typed +0 -0
- restpki_ng_python_client/rest.py +231 -0
- restpki_ng_python_client/restpki_ng_client.py +458 -0
- restpki_ng_python_client/standard_signature_policies.py +24 -0
- restpki_ng_python_client/utils.py +80 -0
- restpki_ng_python_client-0.9.0.dist-info/METADATA +16 -0
- restpki_ng_python_client-0.9.0.dist-info/RECORD +181 -0
- restpki_ng_python_client-0.9.0.dist-info/WHEEL +5 -0
- restpki_ng_python_client-0.9.0.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
|
|
3
|
+
"""
|
|
4
|
+
Rest PKI Core API
|
|
5
|
+
|
|
6
|
+
<b><i>Para Português, <a href=\"https://docs.lacunasoftware.com/pt-br/articles/rest-pki/core/integration/get-started\">clique aqui</a></i></b> <p> <a href=\"https://docs.lacunasoftware.com/en-us/articles/rest-pki/core/\">Rest PKI Core</a> is an upcoming version of <a href=\"https://docs.lacunasoftware.com/en-us/articles/rest-pki/\">Rest PKI</a> that will have extended compatibility with environments and databases. </p> <p> In addition to Windows Server (which is already supported by Rest PKI), Rest PKI Core will also run on <b>Linux</b> (Debian- and RedHat-based distributions) and on <b>Docker</b>. As for database servers, in addition to SQL Server, <b>PostgreSQL</b> will also be supported. </p> <p> <b>Before getting started, see the integration overview on the <a href=\"https://docs.lacunasoftware.com/en-us/articles/rest-pki/core/integration/\">Integration Guide</a></b> </p> <p> For questions regarding the usage of this API, please reach us at <a href=\"https://lacuna.help/\">lacuna.help</a> </p> <h2>Parameters</h2> <p> You will need the following parameters: </p> <ul> <li><b>Endpoint</b>: address of the Rest PKI Core instance that will be used</li> <li><b>API Key</b>: authorization key for using the API</li> </ul> <p> The <span class=\"model\">endpoint</span> must be prefixed to all relative URLs mentioned here. As for the <span class=\"model\">API Key</span>, see how to use it below. </p> <h2>Authentication</h2> <p> The API key must be sent on the <span class=\"model\">X-Api-Key</span> header on each request: </p> <!-- unfortunately, class \"example microlight\" doesn't seem to work here --> <pre style=\"font-size: 12px; padding: 10px; border-radius: 4px; background: #41444e; font-weight: 600; color: #fff;\"> X-Api-Key: yourapp|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx </pre> <h2>HTTP Codes</h2> <p> The APIs will return the following HTTP codes: </p> <table> <thead> <tr> <th>Code</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td><strong class=\"model-title\">200 (OK)</strong></td> <td>Request processed successfully. The response is different for each API, please refer to the operation's documentation</td> </tr> <tr> <td><strong class=\"model-title\">400 (Bad Request)</strong></td> <td>Syntax error. For instance, when a required field was not provided</td> </tr> <tr> <td><strong class=\"model-title\">401 (Unauthorized)</strong></td> <td>API key not provided or invalid</td> </tr> <tr> <td><strong class=\"model-title\">403 (Forbidden)</strong></td> <td>API key is valid, but the application has insufficient permissions to complete the requested operation</td> </tr> <tr> <td><strong class=\"model-title\">422 (Unprocessable Entity)</strong></td> <td>API error. The response body is an <a href=\"#model-ErrorModelV2\" class=\"model\">ErrorModelV2</a> </tr> <tr> <td><strong class=\"model-title\">500 (Internal Server Error)</strong></td> <td>An unexpected error occurred. The <span class=\"model\">exceptionCode</span> contained on the response body may be of help for our support team during diagnostic.</td> </tr> </tbody> </table> <h3>Error Codes</h3> <p> Some of the error codes returned in the <span class=\"model\">code</span> field of an <a href=\"#model-ErrorModelV2\" class=\"model\">ErrorModelV2</a> (body of responses with HTTP status code 422) are provided below*: </p> <table> <thead> <tr> <th>Code</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td class=\"model\">DocumentNotFound</td> <td>A referenced document was not found (check the document ID)</td> </tr> <tr> <td class=\"model\">SecurityContextNotFound</td> <td>A referenced security context was not found (check the security context ID)</td> </tr> <tr> <td class=\"model\">SignatureSessionNotFound</td> <td>A referenced signature session was not found (check the signature session ID)</td> </tr> <tr> <td class=\"model\">BadSignatureSessionOperation</td> <td>The operation is invalid for the current signature session or document status. For instance, trying to await the session's completion if it is still <span class=\"model\">Pending</span> results in this error</td> </tr> <tr> <td class=\"model\">BackgroundProcessing</td> <td>The operation cannot be completed at this time because the resource is being processed in background</td> </tr> <tr> <td class=\"model\">SignatureSessionTokenRequired</td> <td>The signature session token was not passed on the <span class=\"model\">X-Signature-Session-Token</span> request header</td> </tr> <tr> <td class=\"model\">BadSignatureSessionToken</td> <td>An invalid signature session token was passed on the <span class=\"model\">X-Signature-Session-Token</span> request header. Check your application for possible corruption of the session token, which may contain characters <span class=\"code\">-</span> (hyphen) and <span class=\"code\">_</span> (underscore)</td> </tr> <tr> <td class=\"model\">ExpiredSignatureSessionToken</td> <td>An expired signature session token was passed on the <span class=\"model\">X-Signature-Session-Token</span> request header. Signature session tokens are normally valid for 4 hours.</td> </tr> </tbody> </table> <p style=\"font-size: 0.9em\"> *The codes shown above are the most common error codes. Nonetheless, this list is not comprehensive. New codes may be added anytime without previous warning. </p> <h2>Culture / Internationalization (i18n)</h2> <p>The <span class=\"model\">Accept-Language</span> request header is observed by this API. The following cultures are supported:</p> <ul> <li><span class=\"code\">en-US</span> (or simply <span class=\"code\">en</span>)</li> <li><span class=\"code\">pt-BR</span> (or simply <span class=\"code\">pt</span>)</li> </ul> <p><i>Notice: error messages are not affected by this header and therefore should not be displayed to users, being better suited for logging.</i></p>
|
|
7
|
+
|
|
8
|
+
The version of the OpenAPI document: 2.1.2
|
|
9
|
+
Generated by OpenAPI Generator (https://openapi-generator.tech)
|
|
10
|
+
|
|
11
|
+
Do not edit the class manually.
|
|
12
|
+
""" # noqa: E501
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
from __future__ import annotations
|
|
16
|
+
import pprint
|
|
17
|
+
import re # noqa: F401
|
|
18
|
+
import json
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
from typing import Any, ClassVar, Dict, List, Optional
|
|
22
|
+
from pydantic import BaseModel, StrictStr
|
|
23
|
+
from pydantic import Field
|
|
24
|
+
try:
|
|
25
|
+
from typing import Self
|
|
26
|
+
except ImportError:
|
|
27
|
+
from typing_extensions import Self
|
|
28
|
+
|
|
29
|
+
class NameModel(BaseModel):
|
|
30
|
+
"""
|
|
31
|
+
NameModel
|
|
32
|
+
""" # noqa: E501
|
|
33
|
+
country: Optional[StrictStr] = None
|
|
34
|
+
organization: Optional[StrictStr] = None
|
|
35
|
+
organization_unit: Optional[StrictStr] = Field(default=None, alias="organizationUnit")
|
|
36
|
+
dn_qualifier: Optional[StrictStr] = Field(default=None, alias="dnQualifier")
|
|
37
|
+
state_name: Optional[StrictStr] = Field(default=None, alias="stateName")
|
|
38
|
+
common_name: Optional[StrictStr] = Field(default=None, alias="commonName")
|
|
39
|
+
serial_number: Optional[StrictStr] = Field(default=None, alias="serialNumber")
|
|
40
|
+
locality: Optional[StrictStr] = None
|
|
41
|
+
title: Optional[StrictStr] = None
|
|
42
|
+
surname: Optional[StrictStr] = None
|
|
43
|
+
given_name: Optional[StrictStr] = Field(default=None, alias="givenName")
|
|
44
|
+
initials: Optional[StrictStr] = None
|
|
45
|
+
pseudonym: Optional[StrictStr] = None
|
|
46
|
+
generation_qualifier: Optional[StrictStr] = Field(default=None, alias="generationQualifier")
|
|
47
|
+
email_address: Optional[StrictStr] = Field(default=None, alias="emailAddress")
|
|
48
|
+
all_values: Optional[Dict[str, List[StrictStr]]] = Field(default=None, alias="allValues")
|
|
49
|
+
dn_string: Optional[StrictStr] = Field(default=None, alias="dnString")
|
|
50
|
+
__properties: ClassVar[List[str]] = ["country", "organization", "organizationUnit", "dnQualifier", "stateName", "commonName", "serialNumber", "locality", "title", "surname", "givenName", "initials", "pseudonym", "generationQualifier", "emailAddress", "allValues", "dnString"]
|
|
51
|
+
|
|
52
|
+
model_config = {
|
|
53
|
+
"populate_by_name": True,
|
|
54
|
+
"validate_assignment": True
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
def to_str(self) -> str:
|
|
59
|
+
"""Returns the string representation of the model using alias"""
|
|
60
|
+
return pprint.pformat(self.model_dump(by_alias=True))
|
|
61
|
+
|
|
62
|
+
def to_json(self) -> str:
|
|
63
|
+
"""Returns the JSON representation of the model using alias"""
|
|
64
|
+
# TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
|
|
65
|
+
return json.dumps(self.to_dict())
|
|
66
|
+
|
|
67
|
+
@classmethod
|
|
68
|
+
def from_json(cls, json_str: str) -> Self:
|
|
69
|
+
"""Create an instance of NameModel from a JSON string"""
|
|
70
|
+
return cls.from_dict(json.loads(json_str))
|
|
71
|
+
|
|
72
|
+
def to_dict(self) -> Dict[str, Any]:
|
|
73
|
+
"""Return the dictionary representation of the model using alias.
|
|
74
|
+
|
|
75
|
+
This has the following differences from calling pydantic's
|
|
76
|
+
`self.model_dump(by_alias=True)`:
|
|
77
|
+
|
|
78
|
+
* `None` is only added to the output dict for nullable fields that
|
|
79
|
+
were set at model initialization. Other fields with value `None`
|
|
80
|
+
are ignored.
|
|
81
|
+
"""
|
|
82
|
+
_dict = self.model_dump(
|
|
83
|
+
by_alias=True,
|
|
84
|
+
exclude={
|
|
85
|
+
},
|
|
86
|
+
exclude_none=True,
|
|
87
|
+
)
|
|
88
|
+
# set to None if country (nullable) is None
|
|
89
|
+
# and model_fields_set contains the field
|
|
90
|
+
if self.country is None and "country" in self.model_fields_set:
|
|
91
|
+
_dict['country'] = None
|
|
92
|
+
|
|
93
|
+
# set to None if organization (nullable) is None
|
|
94
|
+
# and model_fields_set contains the field
|
|
95
|
+
if self.organization is None and "organization" in self.model_fields_set:
|
|
96
|
+
_dict['organization'] = None
|
|
97
|
+
|
|
98
|
+
# set to None if organization_unit (nullable) is None
|
|
99
|
+
# and model_fields_set contains the field
|
|
100
|
+
if self.organization_unit is None and "organization_unit" in self.model_fields_set:
|
|
101
|
+
_dict['organizationUnit'] = None
|
|
102
|
+
|
|
103
|
+
# set to None if dn_qualifier (nullable) is None
|
|
104
|
+
# and model_fields_set contains the field
|
|
105
|
+
if self.dn_qualifier is None and "dn_qualifier" in self.model_fields_set:
|
|
106
|
+
_dict['dnQualifier'] = None
|
|
107
|
+
|
|
108
|
+
# set to None if state_name (nullable) is None
|
|
109
|
+
# and model_fields_set contains the field
|
|
110
|
+
if self.state_name is None and "state_name" in self.model_fields_set:
|
|
111
|
+
_dict['stateName'] = None
|
|
112
|
+
|
|
113
|
+
# set to None if common_name (nullable) is None
|
|
114
|
+
# and model_fields_set contains the field
|
|
115
|
+
if self.common_name is None and "common_name" in self.model_fields_set:
|
|
116
|
+
_dict['commonName'] = None
|
|
117
|
+
|
|
118
|
+
# set to None if serial_number (nullable) is None
|
|
119
|
+
# and model_fields_set contains the field
|
|
120
|
+
if self.serial_number is None and "serial_number" in self.model_fields_set:
|
|
121
|
+
_dict['serialNumber'] = None
|
|
122
|
+
|
|
123
|
+
# set to None if locality (nullable) is None
|
|
124
|
+
# and model_fields_set contains the field
|
|
125
|
+
if self.locality is None and "locality" in self.model_fields_set:
|
|
126
|
+
_dict['locality'] = None
|
|
127
|
+
|
|
128
|
+
# set to None if title (nullable) is None
|
|
129
|
+
# and model_fields_set contains the field
|
|
130
|
+
if self.title is None and "title" in self.model_fields_set:
|
|
131
|
+
_dict['title'] = None
|
|
132
|
+
|
|
133
|
+
# set to None if surname (nullable) is None
|
|
134
|
+
# and model_fields_set contains the field
|
|
135
|
+
if self.surname is None and "surname" in self.model_fields_set:
|
|
136
|
+
_dict['surname'] = None
|
|
137
|
+
|
|
138
|
+
# set to None if given_name (nullable) is None
|
|
139
|
+
# and model_fields_set contains the field
|
|
140
|
+
if self.given_name is None and "given_name" in self.model_fields_set:
|
|
141
|
+
_dict['givenName'] = None
|
|
142
|
+
|
|
143
|
+
# set to None if initials (nullable) is None
|
|
144
|
+
# and model_fields_set contains the field
|
|
145
|
+
if self.initials is None and "initials" in self.model_fields_set:
|
|
146
|
+
_dict['initials'] = None
|
|
147
|
+
|
|
148
|
+
# set to None if pseudonym (nullable) is None
|
|
149
|
+
# and model_fields_set contains the field
|
|
150
|
+
if self.pseudonym is None and "pseudonym" in self.model_fields_set:
|
|
151
|
+
_dict['pseudonym'] = None
|
|
152
|
+
|
|
153
|
+
# set to None if generation_qualifier (nullable) is None
|
|
154
|
+
# and model_fields_set contains the field
|
|
155
|
+
if self.generation_qualifier is None and "generation_qualifier" in self.model_fields_set:
|
|
156
|
+
_dict['generationQualifier'] = None
|
|
157
|
+
|
|
158
|
+
# set to None if email_address (nullable) is None
|
|
159
|
+
# and model_fields_set contains the field
|
|
160
|
+
if self.email_address is None and "email_address" in self.model_fields_set:
|
|
161
|
+
_dict['emailAddress'] = None
|
|
162
|
+
|
|
163
|
+
# set to None if all_values (nullable) is None
|
|
164
|
+
# and model_fields_set contains the field
|
|
165
|
+
if self.all_values is None and "all_values" in self.model_fields_set:
|
|
166
|
+
_dict['allValues'] = None
|
|
167
|
+
|
|
168
|
+
# set to None if dn_string (nullable) is None
|
|
169
|
+
# and model_fields_set contains the field
|
|
170
|
+
if self.dn_string is None and "dn_string" in self.model_fields_set:
|
|
171
|
+
_dict['dnString'] = None
|
|
172
|
+
|
|
173
|
+
return _dict
|
|
174
|
+
|
|
175
|
+
@classmethod
|
|
176
|
+
def from_dict(cls, obj: Dict) -> Self:
|
|
177
|
+
"""Create an instance of NameModel from a dict"""
|
|
178
|
+
if obj is None:
|
|
179
|
+
return None
|
|
180
|
+
|
|
181
|
+
if not isinstance(obj, dict):
|
|
182
|
+
return cls.model_validate(obj)
|
|
183
|
+
|
|
184
|
+
_obj = cls.model_validate({
|
|
185
|
+
"country": obj.get("country"),
|
|
186
|
+
"organization": obj.get("organization"),
|
|
187
|
+
"organizationUnit": obj.get("organizationUnit"),
|
|
188
|
+
"dnQualifier": obj.get("dnQualifier"),
|
|
189
|
+
"stateName": obj.get("stateName"),
|
|
190
|
+
"commonName": obj.get("commonName"),
|
|
191
|
+
"serialNumber": obj.get("serialNumber"),
|
|
192
|
+
"locality": obj.get("locality"),
|
|
193
|
+
"title": obj.get("title"),
|
|
194
|
+
"surname": obj.get("surname"),
|
|
195
|
+
"givenName": obj.get("givenName"),
|
|
196
|
+
"initials": obj.get("initials"),
|
|
197
|
+
"pseudonym": obj.get("pseudonym"),
|
|
198
|
+
"generationQualifier": obj.get("generationQualifier"),
|
|
199
|
+
"emailAddress": obj.get("emailAddress"),
|
|
200
|
+
"allValues": obj.get("allValues"),
|
|
201
|
+
"dnString": obj.get("dnString")
|
|
202
|
+
})
|
|
203
|
+
return _obj
|
|
204
|
+
|
|
205
|
+
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
|
|
3
|
+
"""
|
|
4
|
+
Rest PKI Core API
|
|
5
|
+
|
|
6
|
+
<b><i>Para Português, <a href=\"https://docs.lacunasoftware.com/pt-br/articles/rest-pki/core/integration/get-started\">clique aqui</a></i></b> <p> <a href=\"https://docs.lacunasoftware.com/en-us/articles/rest-pki/core/\">Rest PKI Core</a> is an upcoming version of <a href=\"https://docs.lacunasoftware.com/en-us/articles/rest-pki/\">Rest PKI</a> that will have extended compatibility with environments and databases. </p> <p> In addition to Windows Server (which is already supported by Rest PKI), Rest PKI Core will also run on <b>Linux</b> (Debian- and RedHat-based distributions) and on <b>Docker</b>. As for database servers, in addition to SQL Server, <b>PostgreSQL</b> will also be supported. </p> <p> <b>Before getting started, see the integration overview on the <a href=\"https://docs.lacunasoftware.com/en-us/articles/rest-pki/core/integration/\">Integration Guide</a></b> </p> <p> For questions regarding the usage of this API, please reach us at <a href=\"https://lacuna.help/\">lacuna.help</a> </p> <h2>Parameters</h2> <p> You will need the following parameters: </p> <ul> <li><b>Endpoint</b>: address of the Rest PKI Core instance that will be used</li> <li><b>API Key</b>: authorization key for using the API</li> </ul> <p> The <span class=\"model\">endpoint</span> must be prefixed to all relative URLs mentioned here. As for the <span class=\"model\">API Key</span>, see how to use it below. </p> <h2>Authentication</h2> <p> The API key must be sent on the <span class=\"model\">X-Api-Key</span> header on each request: </p> <!-- unfortunately, class \"example microlight\" doesn't seem to work here --> <pre style=\"font-size: 12px; padding: 10px; border-radius: 4px; background: #41444e; font-weight: 600; color: #fff;\"> X-Api-Key: yourapp|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx </pre> <h2>HTTP Codes</h2> <p> The APIs will return the following HTTP codes: </p> <table> <thead> <tr> <th>Code</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td><strong class=\"model-title\">200 (OK)</strong></td> <td>Request processed successfully. The response is different for each API, please refer to the operation's documentation</td> </tr> <tr> <td><strong class=\"model-title\">400 (Bad Request)</strong></td> <td>Syntax error. For instance, when a required field was not provided</td> </tr> <tr> <td><strong class=\"model-title\">401 (Unauthorized)</strong></td> <td>API key not provided or invalid</td> </tr> <tr> <td><strong class=\"model-title\">403 (Forbidden)</strong></td> <td>API key is valid, but the application has insufficient permissions to complete the requested operation</td> </tr> <tr> <td><strong class=\"model-title\">422 (Unprocessable Entity)</strong></td> <td>API error. The response body is an <a href=\"#model-ErrorModelV2\" class=\"model\">ErrorModelV2</a> </tr> <tr> <td><strong class=\"model-title\">500 (Internal Server Error)</strong></td> <td>An unexpected error occurred. The <span class=\"model\">exceptionCode</span> contained on the response body may be of help for our support team during diagnostic.</td> </tr> </tbody> </table> <h3>Error Codes</h3> <p> Some of the error codes returned in the <span class=\"model\">code</span> field of an <a href=\"#model-ErrorModelV2\" class=\"model\">ErrorModelV2</a> (body of responses with HTTP status code 422) are provided below*: </p> <table> <thead> <tr> <th>Code</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td class=\"model\">DocumentNotFound</td> <td>A referenced document was not found (check the document ID)</td> </tr> <tr> <td class=\"model\">SecurityContextNotFound</td> <td>A referenced security context was not found (check the security context ID)</td> </tr> <tr> <td class=\"model\">SignatureSessionNotFound</td> <td>A referenced signature session was not found (check the signature session ID)</td> </tr> <tr> <td class=\"model\">BadSignatureSessionOperation</td> <td>The operation is invalid for the current signature session or document status. For instance, trying to await the session's completion if it is still <span class=\"model\">Pending</span> results in this error</td> </tr> <tr> <td class=\"model\">BackgroundProcessing</td> <td>The operation cannot be completed at this time because the resource is being processed in background</td> </tr> <tr> <td class=\"model\">SignatureSessionTokenRequired</td> <td>The signature session token was not passed on the <span class=\"model\">X-Signature-Session-Token</span> request header</td> </tr> <tr> <td class=\"model\">BadSignatureSessionToken</td> <td>An invalid signature session token was passed on the <span class=\"model\">X-Signature-Session-Token</span> request header. Check your application for possible corruption of the session token, which may contain characters <span class=\"code\">-</span> (hyphen) and <span class=\"code\">_</span> (underscore)</td> </tr> <tr> <td class=\"model\">ExpiredSignatureSessionToken</td> <td>An expired signature session token was passed on the <span class=\"model\">X-Signature-Session-Token</span> request header. Signature session tokens are normally valid for 4 hours.</td> </tr> </tbody> </table> <p style=\"font-size: 0.9em\"> *The codes shown above are the most common error codes. Nonetheless, this list is not comprehensive. New codes may be added anytime without previous warning. </p> <h2>Culture / Internationalization (i18n)</h2> <p>The <span class=\"model\">Accept-Language</span> request header is observed by this API. The following cultures are supported:</p> <ul> <li><span class=\"code\">en-US</span> (or simply <span class=\"code\">en</span>)</li> <li><span class=\"code\">pt-BR</span> (or simply <span class=\"code\">pt</span>)</li> </ul> <p><i>Notice: error messages are not affected by this header and therefore should not be displayed to users, being better suited for logging.</i></p>
|
|
7
|
+
|
|
8
|
+
The version of the OpenAPI document: 2.1.2
|
|
9
|
+
Generated by OpenAPI Generator (https://openapi-generator.tech)
|
|
10
|
+
|
|
11
|
+
Do not edit the class manually.
|
|
12
|
+
""" # noqa: E501
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
from __future__ import annotations
|
|
16
|
+
import pprint
|
|
17
|
+
import re # noqa: F401
|
|
18
|
+
import json
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
from typing import Any, ClassVar, Dict, List, Optional
|
|
22
|
+
from pydantic import BaseModel, StrictStr
|
|
23
|
+
try:
|
|
24
|
+
from typing import Self
|
|
25
|
+
except ImportError:
|
|
26
|
+
from typing_extensions import Self
|
|
27
|
+
|
|
28
|
+
class NamespaceModel(BaseModel):
|
|
29
|
+
"""
|
|
30
|
+
NamespaceModel
|
|
31
|
+
""" # noqa: E501
|
|
32
|
+
prefix: Optional[StrictStr] = None
|
|
33
|
+
uri: Optional[StrictStr] = None
|
|
34
|
+
__properties: ClassVar[List[str]] = ["prefix", "uri"]
|
|
35
|
+
|
|
36
|
+
model_config = {
|
|
37
|
+
"populate_by_name": True,
|
|
38
|
+
"validate_assignment": True
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
def to_str(self) -> str:
|
|
43
|
+
"""Returns the string representation of the model using alias"""
|
|
44
|
+
return pprint.pformat(self.model_dump(by_alias=True))
|
|
45
|
+
|
|
46
|
+
def to_json(self) -> str:
|
|
47
|
+
"""Returns the JSON representation of the model using alias"""
|
|
48
|
+
# TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
|
|
49
|
+
return json.dumps(self.to_dict())
|
|
50
|
+
|
|
51
|
+
@classmethod
|
|
52
|
+
def from_json(cls, json_str: str) -> Self:
|
|
53
|
+
"""Create an instance of NamespaceModel from a JSON string"""
|
|
54
|
+
return cls.from_dict(json.loads(json_str))
|
|
55
|
+
|
|
56
|
+
def to_dict(self) -> Dict[str, Any]:
|
|
57
|
+
"""Return the dictionary representation of the model using alias.
|
|
58
|
+
|
|
59
|
+
This has the following differences from calling pydantic's
|
|
60
|
+
`self.model_dump(by_alias=True)`:
|
|
61
|
+
|
|
62
|
+
* `None` is only added to the output dict for nullable fields that
|
|
63
|
+
were set at model initialization. Other fields with value `None`
|
|
64
|
+
are ignored.
|
|
65
|
+
"""
|
|
66
|
+
_dict = self.model_dump(
|
|
67
|
+
by_alias=True,
|
|
68
|
+
exclude={
|
|
69
|
+
},
|
|
70
|
+
exclude_none=True,
|
|
71
|
+
)
|
|
72
|
+
# set to None if prefix (nullable) is None
|
|
73
|
+
# and model_fields_set contains the field
|
|
74
|
+
if self.prefix is None and "prefix" in self.model_fields_set:
|
|
75
|
+
_dict['prefix'] = None
|
|
76
|
+
|
|
77
|
+
# set to None if uri (nullable) is None
|
|
78
|
+
# and model_fields_set contains the field
|
|
79
|
+
if self.uri is None and "uri" in self.model_fields_set:
|
|
80
|
+
_dict['uri'] = None
|
|
81
|
+
|
|
82
|
+
return _dict
|
|
83
|
+
|
|
84
|
+
@classmethod
|
|
85
|
+
def from_dict(cls, obj: Dict) -> Self:
|
|
86
|
+
"""Create an instance of NamespaceModel from a dict"""
|
|
87
|
+
if obj is None:
|
|
88
|
+
return None
|
|
89
|
+
|
|
90
|
+
if not isinstance(obj, dict):
|
|
91
|
+
return cls.model_validate(obj)
|
|
92
|
+
|
|
93
|
+
_obj = cls.model_validate({
|
|
94
|
+
"prefix": obj.get("prefix"),
|
|
95
|
+
"uri": obj.get("uri")
|
|
96
|
+
})
|
|
97
|
+
return _obj
|
|
98
|
+
|
|
99
|
+
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
|
|
3
|
+
"""
|
|
4
|
+
Rest PKI Core API
|
|
5
|
+
|
|
6
|
+
<b><i>Para Português, <a href=\"https://docs.lacunasoftware.com/pt-br/articles/rest-pki/core/integration/get-started\">clique aqui</a></i></b> <p> <a href=\"https://docs.lacunasoftware.com/en-us/articles/rest-pki/core/\">Rest PKI Core</a> is an upcoming version of <a href=\"https://docs.lacunasoftware.com/en-us/articles/rest-pki/\">Rest PKI</a> that will have extended compatibility with environments and databases. </p> <p> In addition to Windows Server (which is already supported by Rest PKI), Rest PKI Core will also run on <b>Linux</b> (Debian- and RedHat-based distributions) and on <b>Docker</b>. As for database servers, in addition to SQL Server, <b>PostgreSQL</b> will also be supported. </p> <p> <b>Before getting started, see the integration overview on the <a href=\"https://docs.lacunasoftware.com/en-us/articles/rest-pki/core/integration/\">Integration Guide</a></b> </p> <p> For questions regarding the usage of this API, please reach us at <a href=\"https://lacuna.help/\">lacuna.help</a> </p> <h2>Parameters</h2> <p> You will need the following parameters: </p> <ul> <li><b>Endpoint</b>: address of the Rest PKI Core instance that will be used</li> <li><b>API Key</b>: authorization key for using the API</li> </ul> <p> The <span class=\"model\">endpoint</span> must be prefixed to all relative URLs mentioned here. As for the <span class=\"model\">API Key</span>, see how to use it below. </p> <h2>Authentication</h2> <p> The API key must be sent on the <span class=\"model\">X-Api-Key</span> header on each request: </p> <!-- unfortunately, class \"example microlight\" doesn't seem to work here --> <pre style=\"font-size: 12px; padding: 10px; border-radius: 4px; background: #41444e; font-weight: 600; color: #fff;\"> X-Api-Key: yourapp|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx </pre> <h2>HTTP Codes</h2> <p> The APIs will return the following HTTP codes: </p> <table> <thead> <tr> <th>Code</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td><strong class=\"model-title\">200 (OK)</strong></td> <td>Request processed successfully. The response is different for each API, please refer to the operation's documentation</td> </tr> <tr> <td><strong class=\"model-title\">400 (Bad Request)</strong></td> <td>Syntax error. For instance, when a required field was not provided</td> </tr> <tr> <td><strong class=\"model-title\">401 (Unauthorized)</strong></td> <td>API key not provided or invalid</td> </tr> <tr> <td><strong class=\"model-title\">403 (Forbidden)</strong></td> <td>API key is valid, but the application has insufficient permissions to complete the requested operation</td> </tr> <tr> <td><strong class=\"model-title\">422 (Unprocessable Entity)</strong></td> <td>API error. The response body is an <a href=\"#model-ErrorModelV2\" class=\"model\">ErrorModelV2</a> </tr> <tr> <td><strong class=\"model-title\">500 (Internal Server Error)</strong></td> <td>An unexpected error occurred. The <span class=\"model\">exceptionCode</span> contained on the response body may be of help for our support team during diagnostic.</td> </tr> </tbody> </table> <h3>Error Codes</h3> <p> Some of the error codes returned in the <span class=\"model\">code</span> field of an <a href=\"#model-ErrorModelV2\" class=\"model\">ErrorModelV2</a> (body of responses with HTTP status code 422) are provided below*: </p> <table> <thead> <tr> <th>Code</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td class=\"model\">DocumentNotFound</td> <td>A referenced document was not found (check the document ID)</td> </tr> <tr> <td class=\"model\">SecurityContextNotFound</td> <td>A referenced security context was not found (check the security context ID)</td> </tr> <tr> <td class=\"model\">SignatureSessionNotFound</td> <td>A referenced signature session was not found (check the signature session ID)</td> </tr> <tr> <td class=\"model\">BadSignatureSessionOperation</td> <td>The operation is invalid for the current signature session or document status. For instance, trying to await the session's completion if it is still <span class=\"model\">Pending</span> results in this error</td> </tr> <tr> <td class=\"model\">BackgroundProcessing</td> <td>The operation cannot be completed at this time because the resource is being processed in background</td> </tr> <tr> <td class=\"model\">SignatureSessionTokenRequired</td> <td>The signature session token was not passed on the <span class=\"model\">X-Signature-Session-Token</span> request header</td> </tr> <tr> <td class=\"model\">BadSignatureSessionToken</td> <td>An invalid signature session token was passed on the <span class=\"model\">X-Signature-Session-Token</span> request header. Check your application for possible corruption of the session token, which may contain characters <span class=\"code\">-</span> (hyphen) and <span class=\"code\">_</span> (underscore)</td> </tr> <tr> <td class=\"model\">ExpiredSignatureSessionToken</td> <td>An expired signature session token was passed on the <span class=\"model\">X-Signature-Session-Token</span> request header. Signature session tokens are normally valid for 4 hours.</td> </tr> </tbody> </table> <p style=\"font-size: 0.9em\"> *The codes shown above are the most common error codes. Nonetheless, this list is not comprehensive. New codes may be added anytime without previous warning. </p> <h2>Culture / Internationalization (i18n)</h2> <p>The <span class=\"model\">Accept-Language</span> request header is observed by this API. The following cultures are supported:</p> <ul> <li><span class=\"code\">en-US</span> (or simply <span class=\"code\">en</span>)</li> <li><span class=\"code\">pt-BR</span> (or simply <span class=\"code\">pt</span>)</li> </ul> <p><i>Notice: error messages are not affected by this header and therefore should not be displayed to users, being better suited for logging.</i></p>
|
|
7
|
+
|
|
8
|
+
The version of the OpenAPI document: 2.1.2
|
|
9
|
+
Generated by OpenAPI Generator (https://openapi-generator.tech)
|
|
10
|
+
|
|
11
|
+
Do not edit the class manually.
|
|
12
|
+
""" # noqa: E501
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
from __future__ import annotations
|
|
16
|
+
import pprint
|
|
17
|
+
import re # noqa: F401
|
|
18
|
+
import json
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
from typing import Any, ClassVar, Dict, List, Optional
|
|
22
|
+
from pydantic import BaseModel, StrictBool, StrictStr
|
|
23
|
+
from pydantic import Field
|
|
24
|
+
from restpki_ng_python_client.models.audit_package_options import AuditPackageOptions
|
|
25
|
+
from restpki_ng_python_client.models.digest_algorithm_and_value_model import DigestAlgorithmAndValueModel
|
|
26
|
+
from restpki_ng_python_client.models.file_model import FileModel
|
|
27
|
+
try:
|
|
28
|
+
from typing import Self
|
|
29
|
+
except ImportError:
|
|
30
|
+
from typing_extensions import Self
|
|
31
|
+
|
|
32
|
+
class OpenCadesSignatureRequestModel(BaseModel):
|
|
33
|
+
"""
|
|
34
|
+
OpenCadesSignatureRequestModel
|
|
35
|
+
""" # noqa: E501
|
|
36
|
+
extract_encapsulated_content: Optional[StrictBool] = Field(default=None, alias="extractEncapsulatedContent")
|
|
37
|
+
file: FileModel
|
|
38
|
+
validate: Optional[StrictBool] = None
|
|
39
|
+
audit_package: Optional[AuditPackageOptions] = Field(default=None, alias="auditPackage")
|
|
40
|
+
default_signature_policy_id: Optional[StrictStr] = Field(default=None, alias="defaultSignaturePolicyId")
|
|
41
|
+
acceptable_explicit_policies: Optional[List[StrictStr]] = Field(default=None, alias="acceptableExplicitPolicies")
|
|
42
|
+
security_context_id: Optional[StrictStr] = Field(default=None, alias="securityContextId")
|
|
43
|
+
ignore_revocation_status_unknown: Optional[StrictBool] = Field(default=None, alias="ignoreRevocationStatusUnknown")
|
|
44
|
+
trust_uncertified_signing_time: Optional[StrictBool] = Field(default=None, alias="trustUncertifiedSigningTime")
|
|
45
|
+
data_hashes: Optional[List[DigestAlgorithmAndValueModel]] = Field(default=None, alias="dataHashes")
|
|
46
|
+
__properties: ClassVar[List[str]] = ["extractEncapsulatedContent", "file", "validate", "auditPackage", "defaultSignaturePolicyId", "acceptableExplicitPolicies", "securityContextId", "ignoreRevocationStatusUnknown", "trustUncertifiedSigningTime", "dataHashes"]
|
|
47
|
+
|
|
48
|
+
model_config = {
|
|
49
|
+
"populate_by_name": True,
|
|
50
|
+
"validate_assignment": True
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
def to_str(self) -> str:
|
|
55
|
+
"""Returns the string representation of the model using alias"""
|
|
56
|
+
return pprint.pformat(self.model_dump(by_alias=True))
|
|
57
|
+
|
|
58
|
+
def to_json(self) -> str:
|
|
59
|
+
"""Returns the JSON representation of the model using alias"""
|
|
60
|
+
# TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
|
|
61
|
+
return json.dumps(self.to_dict())
|
|
62
|
+
|
|
63
|
+
@classmethod
|
|
64
|
+
def from_json(cls, json_str: str) -> Self:
|
|
65
|
+
"""Create an instance of OpenCadesSignatureRequestModel from a JSON string"""
|
|
66
|
+
return cls.from_dict(json.loads(json_str))
|
|
67
|
+
|
|
68
|
+
def to_dict(self) -> Dict[str, Any]:
|
|
69
|
+
"""Return the dictionary representation of the model using alias.
|
|
70
|
+
|
|
71
|
+
This has the following differences from calling pydantic's
|
|
72
|
+
`self.model_dump(by_alias=True)`:
|
|
73
|
+
|
|
74
|
+
* `None` is only added to the output dict for nullable fields that
|
|
75
|
+
were set at model initialization. Other fields with value `None`
|
|
76
|
+
are ignored.
|
|
77
|
+
"""
|
|
78
|
+
_dict = self.model_dump(
|
|
79
|
+
by_alias=True,
|
|
80
|
+
exclude={
|
|
81
|
+
},
|
|
82
|
+
exclude_none=True,
|
|
83
|
+
)
|
|
84
|
+
# override the default output from pydantic by calling `to_dict()` of file
|
|
85
|
+
if self.file:
|
|
86
|
+
_dict['file'] = self.file.to_dict()
|
|
87
|
+
# override the default output from pydantic by calling `to_dict()` of audit_package
|
|
88
|
+
if self.audit_package:
|
|
89
|
+
_dict['auditPackage'] = self.audit_package.to_dict()
|
|
90
|
+
# override the default output from pydantic by calling `to_dict()` of each item in data_hashes (list)
|
|
91
|
+
_items = []
|
|
92
|
+
if self.data_hashes:
|
|
93
|
+
for _item in self.data_hashes:
|
|
94
|
+
if _item:
|
|
95
|
+
_items.append(_item.to_dict())
|
|
96
|
+
_dict['dataHashes'] = _items
|
|
97
|
+
# set to None if default_signature_policy_id (nullable) is None
|
|
98
|
+
# and model_fields_set contains the field
|
|
99
|
+
if self.default_signature_policy_id is None and "default_signature_policy_id" in self.model_fields_set:
|
|
100
|
+
_dict['defaultSignaturePolicyId'] = None
|
|
101
|
+
|
|
102
|
+
# set to None if acceptable_explicit_policies (nullable) is None
|
|
103
|
+
# and model_fields_set contains the field
|
|
104
|
+
if self.acceptable_explicit_policies is None and "acceptable_explicit_policies" in self.model_fields_set:
|
|
105
|
+
_dict['acceptableExplicitPolicies'] = None
|
|
106
|
+
|
|
107
|
+
# set to None if security_context_id (nullable) is None
|
|
108
|
+
# and model_fields_set contains the field
|
|
109
|
+
if self.security_context_id is None and "security_context_id" in self.model_fields_set:
|
|
110
|
+
_dict['securityContextId'] = None
|
|
111
|
+
|
|
112
|
+
# set to None if ignore_revocation_status_unknown (nullable) is None
|
|
113
|
+
# and model_fields_set contains the field
|
|
114
|
+
if self.ignore_revocation_status_unknown is None and "ignore_revocation_status_unknown" in self.model_fields_set:
|
|
115
|
+
_dict['ignoreRevocationStatusUnknown'] = None
|
|
116
|
+
|
|
117
|
+
# set to None if data_hashes (nullable) is None
|
|
118
|
+
# and model_fields_set contains the field
|
|
119
|
+
if self.data_hashes is None and "data_hashes" in self.model_fields_set:
|
|
120
|
+
_dict['dataHashes'] = None
|
|
121
|
+
|
|
122
|
+
return _dict
|
|
123
|
+
|
|
124
|
+
@classmethod
|
|
125
|
+
def from_dict(cls, obj: Dict) -> Self:
|
|
126
|
+
"""Create an instance of OpenCadesSignatureRequestModel from a dict"""
|
|
127
|
+
if obj is None:
|
|
128
|
+
return None
|
|
129
|
+
|
|
130
|
+
if not isinstance(obj, dict):
|
|
131
|
+
return cls.model_validate(obj)
|
|
132
|
+
|
|
133
|
+
_obj = cls.model_validate({
|
|
134
|
+
"extractEncapsulatedContent": obj.get("extractEncapsulatedContent"),
|
|
135
|
+
"file": FileModel.from_dict(obj.get("file")) if obj.get("file") is not None else None,
|
|
136
|
+
"validate": obj.get("validate"),
|
|
137
|
+
"auditPackage": AuditPackageOptions.from_dict(obj.get("auditPackage")) if obj.get("auditPackage") is not None else None,
|
|
138
|
+
"defaultSignaturePolicyId": obj.get("defaultSignaturePolicyId"),
|
|
139
|
+
"acceptableExplicitPolicies": obj.get("acceptableExplicitPolicies"),
|
|
140
|
+
"securityContextId": obj.get("securityContextId"),
|
|
141
|
+
"ignoreRevocationStatusUnknown": obj.get("ignoreRevocationStatusUnknown"),
|
|
142
|
+
"trustUncertifiedSigningTime": obj.get("trustUncertifiedSigningTime"),
|
|
143
|
+
"dataHashes": [DigestAlgorithmAndValueModel.from_dict(_item) for _item in obj.get("dataHashes")] if obj.get("dataHashes") is not None else None
|
|
144
|
+
})
|
|
145
|
+
return _obj
|
|
146
|
+
|
|
147
|
+
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
|
|
3
|
+
"""
|
|
4
|
+
Rest PKI Core API
|
|
5
|
+
|
|
6
|
+
<b><i>Para Português, <a href=\"https://docs.lacunasoftware.com/pt-br/articles/rest-pki/core/integration/get-started\">clique aqui</a></i></b> <p> <a href=\"https://docs.lacunasoftware.com/en-us/articles/rest-pki/core/\">Rest PKI Core</a> is an upcoming version of <a href=\"https://docs.lacunasoftware.com/en-us/articles/rest-pki/\">Rest PKI</a> that will have extended compatibility with environments and databases. </p> <p> In addition to Windows Server (which is already supported by Rest PKI), Rest PKI Core will also run on <b>Linux</b> (Debian- and RedHat-based distributions) and on <b>Docker</b>. As for database servers, in addition to SQL Server, <b>PostgreSQL</b> will also be supported. </p> <p> <b>Before getting started, see the integration overview on the <a href=\"https://docs.lacunasoftware.com/en-us/articles/rest-pki/core/integration/\">Integration Guide</a></b> </p> <p> For questions regarding the usage of this API, please reach us at <a href=\"https://lacuna.help/\">lacuna.help</a> </p> <h2>Parameters</h2> <p> You will need the following parameters: </p> <ul> <li><b>Endpoint</b>: address of the Rest PKI Core instance that will be used</li> <li><b>API Key</b>: authorization key for using the API</li> </ul> <p> The <span class=\"model\">endpoint</span> must be prefixed to all relative URLs mentioned here. As for the <span class=\"model\">API Key</span>, see how to use it below. </p> <h2>Authentication</h2> <p> The API key must be sent on the <span class=\"model\">X-Api-Key</span> header on each request: </p> <!-- unfortunately, class \"example microlight\" doesn't seem to work here --> <pre style=\"font-size: 12px; padding: 10px; border-radius: 4px; background: #41444e; font-weight: 600; color: #fff;\"> X-Api-Key: yourapp|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx </pre> <h2>HTTP Codes</h2> <p> The APIs will return the following HTTP codes: </p> <table> <thead> <tr> <th>Code</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td><strong class=\"model-title\">200 (OK)</strong></td> <td>Request processed successfully. The response is different for each API, please refer to the operation's documentation</td> </tr> <tr> <td><strong class=\"model-title\">400 (Bad Request)</strong></td> <td>Syntax error. For instance, when a required field was not provided</td> </tr> <tr> <td><strong class=\"model-title\">401 (Unauthorized)</strong></td> <td>API key not provided or invalid</td> </tr> <tr> <td><strong class=\"model-title\">403 (Forbidden)</strong></td> <td>API key is valid, but the application has insufficient permissions to complete the requested operation</td> </tr> <tr> <td><strong class=\"model-title\">422 (Unprocessable Entity)</strong></td> <td>API error. The response body is an <a href=\"#model-ErrorModelV2\" class=\"model\">ErrorModelV2</a> </tr> <tr> <td><strong class=\"model-title\">500 (Internal Server Error)</strong></td> <td>An unexpected error occurred. The <span class=\"model\">exceptionCode</span> contained on the response body may be of help for our support team during diagnostic.</td> </tr> </tbody> </table> <h3>Error Codes</h3> <p> Some of the error codes returned in the <span class=\"model\">code</span> field of an <a href=\"#model-ErrorModelV2\" class=\"model\">ErrorModelV2</a> (body of responses with HTTP status code 422) are provided below*: </p> <table> <thead> <tr> <th>Code</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td class=\"model\">DocumentNotFound</td> <td>A referenced document was not found (check the document ID)</td> </tr> <tr> <td class=\"model\">SecurityContextNotFound</td> <td>A referenced security context was not found (check the security context ID)</td> </tr> <tr> <td class=\"model\">SignatureSessionNotFound</td> <td>A referenced signature session was not found (check the signature session ID)</td> </tr> <tr> <td class=\"model\">BadSignatureSessionOperation</td> <td>The operation is invalid for the current signature session or document status. For instance, trying to await the session's completion if it is still <span class=\"model\">Pending</span> results in this error</td> </tr> <tr> <td class=\"model\">BackgroundProcessing</td> <td>The operation cannot be completed at this time because the resource is being processed in background</td> </tr> <tr> <td class=\"model\">SignatureSessionTokenRequired</td> <td>The signature session token was not passed on the <span class=\"model\">X-Signature-Session-Token</span> request header</td> </tr> <tr> <td class=\"model\">BadSignatureSessionToken</td> <td>An invalid signature session token was passed on the <span class=\"model\">X-Signature-Session-Token</span> request header. Check your application for possible corruption of the session token, which may contain characters <span class=\"code\">-</span> (hyphen) and <span class=\"code\">_</span> (underscore)</td> </tr> <tr> <td class=\"model\">ExpiredSignatureSessionToken</td> <td>An expired signature session token was passed on the <span class=\"model\">X-Signature-Session-Token</span> request header. Signature session tokens are normally valid for 4 hours.</td> </tr> </tbody> </table> <p style=\"font-size: 0.9em\"> *The codes shown above are the most common error codes. Nonetheless, this list is not comprehensive. New codes may be added anytime without previous warning. </p> <h2>Culture / Internationalization (i18n)</h2> <p>The <span class=\"model\">Accept-Language</span> request header is observed by this API. The following cultures are supported:</p> <ul> <li><span class=\"code\">en-US</span> (or simply <span class=\"code\">en</span>)</li> <li><span class=\"code\">pt-BR</span> (or simply <span class=\"code\">pt</span>)</li> </ul> <p><i>Notice: error messages are not affected by this header and therefore should not be displayed to users, being better suited for logging.</i></p>
|
|
7
|
+
|
|
8
|
+
The version of the OpenAPI document: 2.1.2
|
|
9
|
+
Generated by OpenAPI Generator (https://openapi-generator.tech)
|
|
10
|
+
|
|
11
|
+
Do not edit the class manually.
|
|
12
|
+
""" # noqa: E501
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
from __future__ import annotations
|
|
16
|
+
import pprint
|
|
17
|
+
import re # noqa: F401
|
|
18
|
+
import json
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
from typing import Any, ClassVar, Dict, List, Optional
|
|
22
|
+
from pydantic import BaseModel, StrictBool, StrictStr
|
|
23
|
+
from pydantic import Field
|
|
24
|
+
from restpki_ng_python_client.models.audit_package_options import AuditPackageOptions
|
|
25
|
+
from restpki_ng_python_client.models.digest_algorithm_and_value_model import DigestAlgorithmAndValueModel
|
|
26
|
+
from restpki_ng_python_client.models.file_model import FileModel
|
|
27
|
+
try:
|
|
28
|
+
from typing import Self
|
|
29
|
+
except ImportError:
|
|
30
|
+
from typing_extensions import Self
|
|
31
|
+
|
|
32
|
+
class OpenSignatureRequestModel(BaseModel):
|
|
33
|
+
"""
|
|
34
|
+
OpenSignatureRequestModel
|
|
35
|
+
""" # noqa: E501
|
|
36
|
+
file: FileModel
|
|
37
|
+
validate: Optional[StrictBool] = None
|
|
38
|
+
audit_package: Optional[AuditPackageOptions] = Field(default=None, alias="auditPackage")
|
|
39
|
+
default_signature_policy_id: Optional[StrictStr] = Field(default=None, alias="defaultSignaturePolicyId")
|
|
40
|
+
acceptable_explicit_policies: Optional[List[StrictStr]] = Field(default=None, alias="acceptableExplicitPolicies")
|
|
41
|
+
security_context_id: Optional[StrictStr] = Field(default=None, alias="securityContextId")
|
|
42
|
+
ignore_revocation_status_unknown: Optional[StrictBool] = Field(default=None, alias="ignoreRevocationStatusUnknown")
|
|
43
|
+
trust_uncertified_signing_time: Optional[StrictBool] = Field(default=None, alias="trustUncertifiedSigningTime")
|
|
44
|
+
data_hashes: Optional[List[DigestAlgorithmAndValueModel]] = Field(default=None, alias="dataHashes")
|
|
45
|
+
__properties: ClassVar[List[str]] = ["file", "validate", "auditPackage", "defaultSignaturePolicyId", "acceptableExplicitPolicies", "securityContextId", "ignoreRevocationStatusUnknown", "trustUncertifiedSigningTime", "dataHashes"]
|
|
46
|
+
|
|
47
|
+
model_config = {
|
|
48
|
+
"populate_by_name": True,
|
|
49
|
+
"validate_assignment": True
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
def to_str(self) -> str:
|
|
54
|
+
"""Returns the string representation of the model using alias"""
|
|
55
|
+
return pprint.pformat(self.model_dump(by_alias=True))
|
|
56
|
+
|
|
57
|
+
def to_json(self) -> str:
|
|
58
|
+
"""Returns the JSON representation of the model using alias"""
|
|
59
|
+
# TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
|
|
60
|
+
return json.dumps(self.to_dict())
|
|
61
|
+
|
|
62
|
+
@classmethod
|
|
63
|
+
def from_json(cls, json_str: str) -> Self:
|
|
64
|
+
"""Create an instance of OpenSignatureRequestModel from a JSON string"""
|
|
65
|
+
return cls.from_dict(json.loads(json_str))
|
|
66
|
+
|
|
67
|
+
def to_dict(self) -> Dict[str, Any]:
|
|
68
|
+
"""Return the dictionary representation of the model using alias.
|
|
69
|
+
|
|
70
|
+
This has the following differences from calling pydantic's
|
|
71
|
+
`self.model_dump(by_alias=True)`:
|
|
72
|
+
|
|
73
|
+
* `None` is only added to the output dict for nullable fields that
|
|
74
|
+
were set at model initialization. Other fields with value `None`
|
|
75
|
+
are ignored.
|
|
76
|
+
"""
|
|
77
|
+
_dict = self.model_dump(
|
|
78
|
+
by_alias=True,
|
|
79
|
+
exclude={
|
|
80
|
+
},
|
|
81
|
+
exclude_none=True,
|
|
82
|
+
)
|
|
83
|
+
# override the default output from pydantic by calling `to_dict()` of file
|
|
84
|
+
if self.file:
|
|
85
|
+
_dict['file'] = self.file.to_dict()
|
|
86
|
+
# override the default output from pydantic by calling `to_dict()` of audit_package
|
|
87
|
+
if self.audit_package:
|
|
88
|
+
_dict['auditPackage'] = self.audit_package.to_dict()
|
|
89
|
+
# override the default output from pydantic by calling `to_dict()` of each item in data_hashes (list)
|
|
90
|
+
_items = []
|
|
91
|
+
if self.data_hashes:
|
|
92
|
+
for _item in self.data_hashes:
|
|
93
|
+
if _item:
|
|
94
|
+
_items.append(_item.to_dict())
|
|
95
|
+
_dict['dataHashes'] = _items
|
|
96
|
+
# set to None if default_signature_policy_id (nullable) is None
|
|
97
|
+
# and model_fields_set contains the field
|
|
98
|
+
if self.default_signature_policy_id is None and "default_signature_policy_id" in self.model_fields_set:
|
|
99
|
+
_dict['defaultSignaturePolicyId'] = None
|
|
100
|
+
|
|
101
|
+
# set to None if acceptable_explicit_policies (nullable) is None
|
|
102
|
+
# and model_fields_set contains the field
|
|
103
|
+
if self.acceptable_explicit_policies is None and "acceptable_explicit_policies" in self.model_fields_set:
|
|
104
|
+
_dict['acceptableExplicitPolicies'] = None
|
|
105
|
+
|
|
106
|
+
# set to None if security_context_id (nullable) is None
|
|
107
|
+
# and model_fields_set contains the field
|
|
108
|
+
if self.security_context_id is None and "security_context_id" in self.model_fields_set:
|
|
109
|
+
_dict['securityContextId'] = None
|
|
110
|
+
|
|
111
|
+
# set to None if ignore_revocation_status_unknown (nullable) is None
|
|
112
|
+
# and model_fields_set contains the field
|
|
113
|
+
if self.ignore_revocation_status_unknown is None and "ignore_revocation_status_unknown" in self.model_fields_set:
|
|
114
|
+
_dict['ignoreRevocationStatusUnknown'] = None
|
|
115
|
+
|
|
116
|
+
# set to None if data_hashes (nullable) is None
|
|
117
|
+
# and model_fields_set contains the field
|
|
118
|
+
if self.data_hashes is None and "data_hashes" in self.model_fields_set:
|
|
119
|
+
_dict['dataHashes'] = None
|
|
120
|
+
|
|
121
|
+
return _dict
|
|
122
|
+
|
|
123
|
+
@classmethod
|
|
124
|
+
def from_dict(cls, obj: Dict) -> Self:
|
|
125
|
+
"""Create an instance of OpenSignatureRequestModel from a dict"""
|
|
126
|
+
if obj is None:
|
|
127
|
+
return None
|
|
128
|
+
|
|
129
|
+
if not isinstance(obj, dict):
|
|
130
|
+
return cls.model_validate(obj)
|
|
131
|
+
|
|
132
|
+
_obj = cls.model_validate({
|
|
133
|
+
"file": FileModel.from_dict(obj.get("file")) if obj.get("file") is not None else None,
|
|
134
|
+
"validate": obj.get("validate"),
|
|
135
|
+
"auditPackage": AuditPackageOptions.from_dict(obj.get("auditPackage")) if obj.get("auditPackage") is not None else None,
|
|
136
|
+
"defaultSignaturePolicyId": obj.get("defaultSignaturePolicyId"),
|
|
137
|
+
"acceptableExplicitPolicies": obj.get("acceptableExplicitPolicies"),
|
|
138
|
+
"securityContextId": obj.get("securityContextId"),
|
|
139
|
+
"ignoreRevocationStatusUnknown": obj.get("ignoreRevocationStatusUnknown"),
|
|
140
|
+
"trustUncertifiedSigningTime": obj.get("trustUncertifiedSigningTime"),
|
|
141
|
+
"dataHashes": [DigestAlgorithmAndValueModel.from_dict(_item) for _item in obj.get("dataHashes")] if obj.get("dataHashes") is not None else None
|
|
142
|
+
})
|
|
143
|
+
return _obj
|
|
144
|
+
|
|
145
|
+
|