From c9a66c67ca07a51c6bffc6e199ed3d2cdeaaf128 Mon Sep 17 00:00:00 2001 From: speakeasybot Date: Thu, 21 Aug 2025 11:26:36 +0000 Subject: [PATCH 1/2] ## SDK Changes Detected: * `apideck.ats.jobs.list()`: `response.data.[].blocks.[].content` **Changed** **Breaking** :warning: * `apideck.ats.jobs.get()`: `response.data.blocks.[].content` **Changed** **Breaking** :warning: * `apideck.accounting.suppliers.list()`: `response.data.[]` **Changed** * `apideck.accounting.suppliers.create()`: `request` **Changed** * `apideck.accounting.suppliers.get()`: `response.data` **Changed** * `apideck.accounting.suppliers.update()`: `request` **Changed** --- .speakeasy/gen.lock | 26 +++- .speakeasy/gen.yaml | 2 +- .speakeasy/workflow.lock | 14 +- RELEASES.md | 12 +- docs/models/blocks.md | 8 +- docs/models/linkedtaxdetail.md | 11 ++ docs/models/linkedtaxstatusdetail.md | 9 ++ docs/models/supplier.md | 7 +- docs/models/supplierinput.md | 7 +- docs/sdks/suppliers/README.md | 42 +++++- pyproject.toml | 2 +- src/apideck_unify/_version.py | 6 +- src/apideck_unify/models/__init__.py | 13 ++ src/apideck_unify/models/job.py | 34 ++++- src/apideck_unify/models/linkedtaxdetail.py | 68 ++++++++++ .../models/linkedtaxstatusdetail.py | 58 +++++++++ src/apideck_unify/models/supplier.py | 58 +++++++++ src/apideck_unify/suppliers.py | 122 +++++++++++++++++- 18 files changed, 466 insertions(+), 33 deletions(-) create mode 100644 docs/models/linkedtaxdetail.md create mode 100644 docs/models/linkedtaxstatusdetail.md create mode 100644 src/apideck_unify/models/linkedtaxdetail.py create mode 100644 src/apideck_unify/models/linkedtaxstatusdetail.py diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock index 99787140..09159b1c 100644 --- a/.speakeasy/gen.lock +++ b/.speakeasy/gen.lock @@ -1,12 +1,12 @@ lockVersion: 2.0.0 id: fca0ac3a-5f4e-452c-bbc7-2311afa8da40 management: - docChecksum: a7ad08d6f4be43729f38ef68b9200aef - docVersion: 10.20.9 + docChecksum: 2d918b6b0dc4abae28a10d889a05e324 + docVersion: 10.20.10 speakeasyVersion: 1.606.0 generationVersion: 2.686.7 - releaseVersion: 0.21.4 - configChecksum: 7200798696f615fcf0039befab82d516 + releaseVersion: 0.21.5 + configChecksum: 3aff60436bfb02762a844a652085131c repoURL: https://github.com/apideck-libraries/sdk-python.git installationURL: https://github.com/apideck-libraries/sdk-python.git published: true @@ -1411,8 +1411,10 @@ generatedFiles: - docs/models/linkedresources.md - docs/models/linkedsupplier.md - docs/models/linkedsupplierinput.md + - docs/models/linkedtaxdetail.md - docs/models/linkedtaxrate.md - docs/models/linkedtaxrateinput.md + - docs/models/linkedtaxstatusdetail.md - docs/models/linkedtrackingcategory.md - docs/models/linkedworktag.md - docs/models/links.md @@ -2612,8 +2614,10 @@ generatedFiles: - src/apideck_unify/models/linkedpurchaseorder.py - src/apideck_unify/models/linkedsupplier.py - src/apideck_unify/models/linkedsupplier_input.py + - src/apideck_unify/models/linkedtaxdetail.py - src/apideck_unify/models/linkedtaxrate.py - src/apideck_unify/models/linkedtaxrate_input.py + - src/apideck_unify/models/linkedtaxstatusdetail.py - src/apideck_unify/models/linkedtrackingcategory.py - src/apideck_unify/models/linkedworktag.py - src/apideck_unify/models/links.py @@ -4804,7 +4808,7 @@ examples: x-apideck-app-id: "dSBdXd2H6Mqwfg0atXHXYcysLJE9qyn1VwBtXHX" x-apideck-service-id: "salesforce" requestBody: - application/json: {"display_id": "EMP00101", "display_name": "Windsurf Shop", "company_name": "SpaceX", "company_id": "12345", "supplier_category": "Insurance", "title": "CEO", "first_name": "Elon", "middle_name": "D.", "last_name": "Musk", "suffix": "Jr.", "individual": true, "addresses": [{"id": "123", "type": "primary", "string": "25 Spring Street, Blackburn, VIC 3130", "name": "HQ US", "line1": "Main street", "line2": "apt #", "line3": "Suite #", "line4": "delivery instructions", "street_number": "25", "city": "San Francisco", "state": "CA", "postal_code": "94104", "country": "US", "latitude": "40.759211", "longitude": "-73.984638", "county": "Santa Clara", "contact_name": "Elon Musk", "salutation": "Mr", "phone_number": "111-111-1111", "fax": "122-111-1111", "email": "elon@musk.com", "website": "https://elonmusk.com", "notes": "Address notes or delivery instructions.", "row_version": "1-12345"}], "phone_numbers": [{"id": "12345", "country_code": "1", "area_code": "323", "number": "111-111-1111", "extension": "105", "type": "primary"}], "emails": [{"id": "123", "email": "elon@musk.com", "type": "primary"}], "websites": [{"id": "12345", "url": "http://example.com", "type": "primary"}], "bank_accounts": [{"bank_name": "Monzo", "account_number": "123465", "account_name": "SPACEX LLC", "account_type": "credit_card", "iban": "CH2989144532982975332", "bic": "AUDSCHGGXXX", "routing_number": "012345678", "bsb_number": "062-001", "branch_identifier": "001", "bank_code": "BNH", "currency": "USD"}], "notes": "Some notes about this supplier", "tax_rate": {"id": "123456", "rate": 10}, "tax_number": "US123945459", "currency": "USD", "account": {"id": "123456", "nominal_code": "N091", "code": "453"}, "status": "active", "payment_method": "cash", "terms": "Net 30 days", "channel": "email", "custom_fields": [{"id": "2389328923893298", "name": "employee_level", "description": "Employee Level", "value": "Uses Salesforce and Marketo"}], "row_version": "1-12345", "pass_through": [{"service_id": "", "extend_paths": [{"path": "$.nested.property", "value": {"TaxClassificationRef": {"value": "EUC-99990201-V1-00020000"}}}]}], "subsidiary_id": "12345"} + application/json: {"display_id": "EMP00101", "display_name": "Windsurf Shop", "company_name": "SpaceX", "company_id": "12345", "supplier_category": "Insurance", "title": "CEO", "first_name": "Elon", "middle_name": "D.", "last_name": "Musk", "suffix": "Jr.", "individual": true, "addresses": [{"id": "123", "type": "primary", "string": "25 Spring Street, Blackburn, VIC 3130", "name": "HQ US", "line1": "Main street", "line2": "apt #", "line3": "Suite #", "line4": "delivery instructions", "street_number": "25", "city": "San Francisco", "state": "CA", "postal_code": "94104", "country": "US", "latitude": "40.759211", "longitude": "-73.984638", "county": "Santa Clara", "contact_name": "Elon Musk", "salutation": "Mr", "phone_number": "111-111-1111", "fax": "122-111-1111", "email": "elon@musk.com", "website": "https://elonmusk.com", "notes": "Address notes or delivery instructions.", "row_version": "1-12345"}], "phone_numbers": [{"id": "12345", "country_code": "1", "area_code": "323", "number": "111-111-1111", "extension": "105", "type": "primary"}], "emails": [{"id": "123", "email": "elon@musk.com", "type": "primary"}], "websites": [{"id": "12345", "url": "http://example.com", "type": "primary"}], "bank_accounts": [{"bank_name": "Monzo", "account_number": "123465", "account_name": "SPACEX LLC", "account_type": "credit_card", "iban": "CH2989144532982975332", "bic": "AUDSCHGGXXX", "routing_number": "012345678", "bsb_number": "062-001", "branch_identifier": "001", "bank_code": "BNH", "currency": "USD"}], "notes": "Some notes about this supplier", "tax_rate": {"id": "123456", "rate": 10}, "tax_number": "US123945459", "currency": "USD", "account": {"id": "123456", "nominal_code": "N091", "code": "453"}, "status": "active", "payment_method": "cash", "terms": "Net 30 days", "channel": "email", "issued_method": "Email", "issued_email": "john.doe@example.com", "custom_fields": [{"id": "2389328923893298", "name": "employee_level", "description": "Employee Level", "value": "Uses Salesforce and Marketo"}], "tax_details": [{"type": "GST on Purchases", "number": "123456", "is_transaction_tax": true, "is_primary_tax": true}], "tax_status_details": [{"country": "US", "transaction_tax_status": "taxable"}], "row_version": "1-12345", "pass_through": [{"service_id": "", "extend_paths": [{"path": "$.nested.property", "value": {"TaxClassificationRef": {"value": "EUC-99990201-V1-00020000"}}}]}], "subsidiary_id": "12345", "integration_system_id": "12345"} responses: "201": application/json: {"status_code": 200, "status": "OK", "service": "xero", "resource": "payments", "operation": "add", "data": {"id": "12345"}} @@ -4860,7 +4864,7 @@ examples: x-apideck-service-id: "salesforce" responses: "200": - application/json: {"status_code": 200, "status": "OK", "service": "xero", "resource": "suppliers", "operation": "one", "data": {"id": "12345", "downstream_id": "12345", "display_id": "EMP00101", "display_name": "Windsurf Shop", "company_name": "SpaceX", "company_id": "12345", "supplier_category": "Insurance", "title": "CEO", "first_name": "Elon", "middle_name": "D.", "last_name": "Musk", "suffix": "Jr.", "individual": true, "addresses": [{"id": "123", "type": "primary", "string": "25 Spring Street, Blackburn, VIC 3130", "name": "HQ US", "line1": "Main street", "line2": "apt #", "line3": "Suite #", "line4": "delivery instructions", "street_number": "25", "city": "San Francisco", "state": "CA", "postal_code": "94104", "country": "US", "latitude": "40.759211", "longitude": "-73.984638", "county": "Santa Clara", "contact_name": "Elon Musk", "salutation": "Mr", "phone_number": "111-111-1111", "fax": "122-111-1111", "email": "elon@musk.com", "website": "https://elonmusk.com", "notes": "Address notes or delivery instructions.", "row_version": "1-12345"}], "phone_numbers": [{"id": "12345", "country_code": "1", "area_code": "323", "number": "111-111-1111", "extension": "105", "type": "primary"}], "emails": [{"id": "123", "email": "elon@musk.com", "type": "primary"}], "websites": [{"id": "12345", "url": "http://example.com", "type": "primary"}], "bank_accounts": [{"bank_name": "Monzo", "account_number": "123465", "account_name": "SPACEX LLC", "account_type": "credit_card", "iban": "CH2989144532982975332", "bic": "AUDSCHGGXXX", "routing_number": "012345678", "bsb_number": "062-001", "branch_identifier": "001", "bank_code": "BNH", "currency": "USD"}], "notes": "Some notes about this supplier", "tax_rate": {"id": "123456", "code": "N-T", "name": "GST on Purchases", "rate": 10}, "tax_number": "US123945459", "currency": "USD", "account": {"id": "123456", "name": "Bank account", "nominal_code": "N091", "code": "453"}, "status": "active", "payment_method": "cash", "terms": "Net 30 days", "channel": "email", "custom_fields": [{"id": "2389328923893298", "name": "employee_level", "description": "Employee Level", "value": "Uses Salesforce and Marketo"}], "updated_by": "12345", "created_by": "12345", "updated_at": "2020-09-30T07:43:32.000Z", "created_at": "2020-09-30T07:43:32.000Z", "row_version": "1-12345", "pass_through": [{"service_id": "", "extend_paths": [{"path": "$.nested.property", "value": {"TaxClassificationRef": {"value": "EUC-99990201-V1-00020000"}}}]}], "subsidiary_id": "12345"}} + application/json: {"status_code": 200, "status": "OK", "service": "xero", "resource": "suppliers", "operation": "one", "data": {"id": "12345", "downstream_id": "12345", "display_id": "EMP00101", "display_name": "Windsurf Shop", "company_name": "SpaceX", "company_id": "12345", "supplier_category": "Insurance", "title": "CEO", "first_name": "Elon", "middle_name": "D.", "last_name": "Musk", "suffix": "Jr.", "individual": true, "addresses": [{"id": "123", "type": "primary", "string": "25 Spring Street, Blackburn, VIC 3130", "name": "HQ US", "line1": "Main street", "line2": "apt #", "line3": "Suite #", "line4": "delivery instructions", "street_number": "25", "city": "San Francisco", "state": "CA", "postal_code": "94104", "country": "US", "latitude": "40.759211", "longitude": "-73.984638", "county": "Santa Clara", "contact_name": "Elon Musk", "salutation": "Mr", "phone_number": "111-111-1111", "fax": "122-111-1111", "email": "elon@musk.com", "website": "https://elonmusk.com", "notes": "Address notes or delivery instructions.", "row_version": "1-12345"}], "phone_numbers": [{"id": "12345", "country_code": "1", "area_code": "323", "number": "111-111-1111", "extension": "105", "type": "primary"}], "emails": [{"id": "123", "email": "elon@musk.com", "type": "primary"}], "websites": [{"id": "12345", "url": "http://example.com", "type": "primary"}], "bank_accounts": [{"bank_name": "Monzo", "account_number": "123465", "account_name": "SPACEX LLC", "account_type": "credit_card", "iban": "CH2989144532982975332", "bic": "AUDSCHGGXXX", "routing_number": "012345678", "bsb_number": "062-001", "branch_identifier": "001", "bank_code": "BNH", "currency": "USD"}], "notes": "Some notes about this supplier", "tax_rate": {"id": "123456", "code": "N-T", "name": "GST on Purchases", "rate": 10}, "tax_number": "US123945459", "currency": "USD", "account": {"id": "123456", "name": "Bank account", "nominal_code": "N091", "code": "453"}, "status": "active", "payment_method": "cash", "terms": "Net 30 days", "channel": "email", "issued_method": "Email", "issued_email": "john.doe@example.com", "custom_fields": [{"id": "2389328923893298", "name": "employee_level", "description": "Employee Level", "value": "Uses Salesforce and Marketo"}], "tax_details": [{"type": "GST on Purchases", "number": "123456", "is_transaction_tax": true, "is_primary_tax": true}], "tax_status_details": [{"country": "US", "transaction_tax_status": "taxable"}], "updated_by": "12345", "created_by": "12345", "updated_at": "2020-09-30T07:43:32.000Z", "created_at": "2020-09-30T07:43:32.000Z", "row_version": "1-12345", "pass_through": [{"service_id": "", "extend_paths": [{"path": "$.nested.property", "value": {"TaxClassificationRef": {"value": "EUC-99990201-V1-00020000"}}}]}], "subsidiary_id": "12345", "integration_system_id": "12345"}} "400": application/json: {"status_code": 400, "error": "Bad Request", "type_name": "RequestValidationError", "message": "Invalid Params", "detail": "Missing property foobar", "ref": "https://developers.apideck.com/errors#requestvalidationerror"} "401": @@ -4912,7 +4916,7 @@ examples: x-apideck-app-id: "dSBdXd2H6Mqwfg0atXHXYcysLJE9qyn1VwBtXHX" x-apideck-service-id: "salesforce" requestBody: - application/json: {"display_id": "EMP00101", "display_name": "Windsurf Shop", "company_name": "SpaceX", "company_id": "12345", "supplier_category": "Insurance", "title": "CEO", "first_name": "Elon", "middle_name": "D.", "last_name": "Musk", "suffix": "Jr.", "individual": true, "addresses": [{"id": "123", "type": "primary", "string": "25 Spring Street, Blackburn, VIC 3130", "name": "HQ US", "line1": "Main street", "line2": "apt #", "line3": "Suite #", "line4": "delivery instructions", "street_number": "25", "city": "San Francisco", "state": "CA", "postal_code": "94104", "country": "US", "latitude": "40.759211", "longitude": "-73.984638", "county": "Santa Clara", "contact_name": "Elon Musk", "salutation": "Mr", "phone_number": "111-111-1111", "fax": "122-111-1111", "email": "elon@musk.com", "website": "https://elonmusk.com", "notes": "Address notes or delivery instructions.", "row_version": "1-12345"}], "phone_numbers": [{"id": "12345", "country_code": "1", "area_code": "323", "number": "111-111-1111", "extension": "105", "type": "primary"}], "emails": [{"id": "123", "email": "elon@musk.com", "type": "primary"}], "websites": [{"id": "12345", "url": "http://example.com", "type": "primary"}], "bank_accounts": [{"bank_name": "Monzo", "account_number": "123465", "account_name": "SPACEX LLC", "account_type": "credit_card", "iban": "CH2989144532982975332", "bic": "AUDSCHGGXXX", "routing_number": "012345678", "bsb_number": "062-001", "branch_identifier": "001", "bank_code": "BNH", "currency": "USD"}], "notes": "Some notes about this supplier", "tax_rate": {"id": "123456", "rate": 10}, "tax_number": "US123945459", "currency": "USD", "account": {"id": "123456", "nominal_code": "N091", "code": "453"}, "status": "active", "payment_method": "cash", "terms": "Net 30 days", "channel": "email", "custom_fields": [{"id": "2389328923893298", "name": "employee_level", "description": "Employee Level", "value": "Uses Salesforce and Marketo"}], "row_version": "1-12345", "pass_through": [{"service_id": "", "extend_paths": [{"path": "$.nested.property", "value": {"TaxClassificationRef": {"value": "EUC-99990201-V1-00020000"}}}]}], "subsidiary_id": "12345"} + application/json: {"display_id": "EMP00101", "display_name": "Windsurf Shop", "company_name": "SpaceX", "company_id": "12345", "supplier_category": "Insurance", "title": "CEO", "first_name": "Elon", "middle_name": "D.", "last_name": "Musk", "suffix": "Jr.", "individual": true, "addresses": [{"id": "123", "type": "primary", "string": "25 Spring Street, Blackburn, VIC 3130", "name": "HQ US", "line1": "Main street", "line2": "apt #", "line3": "Suite #", "line4": "delivery instructions", "street_number": "25", "city": "San Francisco", "state": "CA", "postal_code": "94104", "country": "US", "latitude": "40.759211", "longitude": "-73.984638", "county": "Santa Clara", "contact_name": "Elon Musk", "salutation": "Mr", "phone_number": "111-111-1111", "fax": "122-111-1111", "email": "elon@musk.com", "website": "https://elonmusk.com", "notes": "Address notes or delivery instructions.", "row_version": "1-12345"}], "phone_numbers": [{"id": "12345", "country_code": "1", "area_code": "323", "number": "111-111-1111", "extension": "105", "type": "primary"}], "emails": [{"id": "123", "email": "elon@musk.com", "type": "primary"}], "websites": [{"id": "12345", "url": "http://example.com", "type": "primary"}], "bank_accounts": [{"bank_name": "Monzo", "account_number": "123465", "account_name": "SPACEX LLC", "account_type": "credit_card", "iban": "CH2989144532982975332", "bic": "AUDSCHGGXXX", "routing_number": "012345678", "bsb_number": "062-001", "branch_identifier": "001", "bank_code": "BNH", "currency": "USD"}], "notes": "Some notes about this supplier", "tax_rate": {"id": "123456", "rate": 10}, "tax_number": "US123945459", "currency": "USD", "account": {"id": "123456", "nominal_code": "N091", "code": "453"}, "status": "active", "payment_method": "cash", "terms": "Net 30 days", "channel": "email", "issued_method": "Email", "issued_email": "john.doe@example.com", "custom_fields": [{"id": "2389328923893298", "name": "employee_level", "description": "Employee Level", "value": "Uses Salesforce and Marketo"}], "tax_details": [{"type": "GST on Purchases", "number": "123456", "is_transaction_tax": true, "is_primary_tax": true}], "tax_status_details": [{"country": "US", "transaction_tax_status": "taxable"}], "row_version": "1-12345", "pass_through": [{"service_id": "", "extend_paths": [{"path": "$.nested.property", "value": {"TaxClassificationRef": {"value": "EUC-99990201-V1-00020000"}}}]}], "subsidiary_id": "12345", "integration_system_id": "12345"} responses: "200": application/json: {"status_code": 200, "status": "OK", "service": "xero", "resource": "suppliers", "operation": "update", "data": {"id": "12345"}} @@ -18013,3 +18017,11 @@ examples: application/json: {"status_code": 400, "error": "Bad Request", "type_name": "RequestHeadersValidationError", "message": "Invalid Params", "detail": "Missing Header: x-apideck-consumer-id", "ref": "https://developers.apideck.com/errors#unauthorizederror"} examplesVersion: 1.0.2 generatedTests: {} +releaseNotes: | + ## SDK Changes Detected: + * `apideck.ats.jobs.list()`: `response.data.[].blocks.[].content` **Changed** **Breaking** :warning: + * `apideck.ats.jobs.get()`: `response.data.blocks.[].content` **Changed** **Breaking** :warning: + * `apideck.accounting.suppliers.list()`: `response.data.[]` **Changed** + * `apideck.accounting.suppliers.create()`: `request` **Changed** + * `apideck.accounting.suppliers.get()`: `response.data` **Changed** + * `apideck.accounting.suppliers.update()`: `request` **Changed** diff --git a/.speakeasy/gen.yaml b/.speakeasy/gen.yaml index 2b752dde..154df26c 100644 --- a/.speakeasy/gen.yaml +++ b/.speakeasy/gen.yaml @@ -24,7 +24,7 @@ generation: generateNewTests: false skipResponseBodyAssertions: false python: - version: 0.21.4 + version: 0.21.5 additionalDependencies: dev: {} main: {} diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock index b3f596d8..a5d97722 100644 --- a/.speakeasy/workflow.lock +++ b/.speakeasy/workflow.lock @@ -2,20 +2,20 @@ speakeasyVersion: 1.606.0 sources: Apideck: sourceNamespace: apideck - sourceRevisionDigest: sha256:25d7ffb9880be585bf4e03239d6587efd14792511c091c6f03b7445cbe92f61d - sourceBlobDigest: sha256:bca4b2125a4af1cb743a6239ed2c84f50c552769b37e7439d93c71952073d5a0 + sourceRevisionDigest: sha256:e7b566f95fb335f8ed86ee70bae23c2b86a606eed8123307f1408f9c8ea63941 + sourceBlobDigest: sha256:8a19e9c46f43e336fb59ca58640fe173dd0e97b0d13d7422a143a70a8392726c tags: - latest - - speakeasy-sdk-regen-1755766241 - - 10.20.9 + - speakeasy-sdk-regen-1755773170 + - 10.20.10 targets: apideck: source: Apideck sourceNamespace: apideck - sourceRevisionDigest: sha256:25d7ffb9880be585bf4e03239d6587efd14792511c091c6f03b7445cbe92f61d - sourceBlobDigest: sha256:bca4b2125a4af1cb743a6239ed2c84f50c552769b37e7439d93c71952073d5a0 + sourceRevisionDigest: sha256:e7b566f95fb335f8ed86ee70bae23c2b86a606eed8123307f1408f9c8ea63941 + sourceBlobDigest: sha256:8a19e9c46f43e336fb59ca58640fe173dd0e97b0d13d7422a143a70a8392726c codeSamplesNamespace: apideck-python-code-samples - codeSamplesRevisionDigest: sha256:d2bda16e0c0a8e3edaba357f149b5209e453fe244fb535e845dd4c7e02502f4b + codeSamplesRevisionDigest: sha256:6120fde82f438e37b6a9e8a59138decc012ea71925d6aa53b30c62910d32317b workflow: workflowVersion: 1.0.0 speakeasyVersion: latest diff --git a/RELEASES.md b/RELEASES.md index 9dcc732d..3c3d4809 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -418,4 +418,14 @@ Based on: ### Generated - [python v0.21.4] . ### Releases -- [PyPI v0.21.4] https://pypi.org/project/apideck-unify/0.21.4 - . \ No newline at end of file +- [PyPI v0.21.4] https://pypi.org/project/apideck-unify/0.21.4 - . + +## 2025-08-21 11:23:30 +### Changes +Based on: +- OpenAPI Doc +- Speakeasy CLI 1.606.0 (2.686.7) https://github.com/speakeasy-api/speakeasy +### Generated +- [python v0.21.5] . +### Releases +- [PyPI v0.21.5] https://pypi.org/project/apideck-unify/0.21.5 - . \ No newline at end of file diff --git a/docs/models/blocks.md b/docs/models/blocks.md index 94ad6aca..d85d5262 100644 --- a/docs/models/blocks.md +++ b/docs/models/blocks.md @@ -3,7 +3,7 @@ ## Fields -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `title` | *Optional[str]* | :heavy_minus_sign: | N/A | -| `content` | *Optional[str]* | :heavy_minus_sign: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| ----------------------- | ----------------------- | ----------------------- | ----------------------- | +| `title` | *Optional[str]* | :heavy_minus_sign: | N/A | +| `content` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/linkedtaxdetail.md b/docs/models/linkedtaxdetail.md new file mode 100644 index 00000000..8524c751 --- /dev/null +++ b/docs/models/linkedtaxdetail.md @@ -0,0 +1,11 @@ +# LinkedTaxDetail + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------------- | ------------------------------------- | ------------------------------------- | ------------------------------------- | ------------------------------------- | +| `type` | *Optional[str]* | :heavy_minus_sign: | The type of tax. | GST on Purchases | +| `number` | *OptionalNullable[str]* | :heavy_minus_sign: | The number of the tax. | 123456 | +| `is_transaction_tax` | *Optional[bool]* | :heavy_minus_sign: | Whether the tax is a transaction tax. | true | +| `is_primary_tax` | *Optional[bool]* | :heavy_minus_sign: | Whether the tax is a primary tax. | true | \ No newline at end of file diff --git a/docs/models/linkedtaxstatusdetail.md b/docs/models/linkedtaxstatusdetail.md new file mode 100644 index 00000000..4973af4f --- /dev/null +++ b/docs/models/linkedtaxstatusdetail.md @@ -0,0 +1,9 @@ +# LinkedTaxStatusDetail + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ | +| `country` | *Optional[str]* | :heavy_minus_sign: | The country of the tax status. | US | +| `transaction_tax_status` | *OptionalNullable[str]* | :heavy_minus_sign: | The transaction tax status. | taxable | \ No newline at end of file diff --git a/docs/models/supplier.md b/docs/models/supplier.md index 5fa22edf..4e18b088 100644 --- a/docs/models/supplier.md +++ b/docs/models/supplier.md @@ -32,12 +32,17 @@ | `payment_method` | *OptionalNullable[str]* | :heavy_minus_sign: | Payment method used for the transaction, such as cash, credit card, bank transfer, or check | cash | | `terms` | *OptionalNullable[str]* | :heavy_minus_sign: | Terms of payment. | Net 30 days | | `channel` | *OptionalNullable[str]* | :heavy_minus_sign: | The channel through which the transaction is processed. | email | +| `issued_method` | *OptionalNullable[str]* | :heavy_minus_sign: | Method of issuance of the purchase order for the supplier | Email | +| `issued_email` | *OptionalNullable[str]* | :heavy_minus_sign: | Email address of the person who issued the purchase order for the supplier | john.doe@example.com | | `custom_mappings` | Dict[str, *Any*] | :heavy_minus_sign: | When custom mappings are configured on the resource, the result is included here. | | | `custom_fields` | List[[models.CustomField](../models/customfield.md)] | :heavy_minus_sign: | N/A | | +| `tax_details` | List[[Nullable[models.LinkedTaxDetail]](../models/linkedtaxdetail.md)] | :heavy_minus_sign: | N/A | | +| `tax_status_details` | List[[Nullable[models.LinkedTaxStatusDetail]](../models/linkedtaxstatusdetail.md)] | :heavy_minus_sign: | N/A | | | `updated_by` | *OptionalNullable[str]* | :heavy_minus_sign: | The user who last updated the object. | 12345 | | `created_by` | *OptionalNullable[str]* | :heavy_minus_sign: | The user who created the object. | 12345 | | `updated_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_minus_sign: | The date and time when the object was last updated. | 2020-09-30T07:43:32.000Z | | `created_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_minus_sign: | The date and time when the object was created. | 2020-09-30T07:43:32.000Z | | `row_version` | *OptionalNullable[str]* | :heavy_minus_sign: | A binary value used to detect updates to a object and prevent data conflicts. It is incremented each time an update is made to the object. | 1-12345 | | `pass_through` | List[[models.PassThroughBody](../models/passthroughbody.md)] | :heavy_minus_sign: | The pass_through property allows passing service-specific, custom data or structured modifications in request body when creating or updating resources. | | -| `subsidiary_id` | *Optional[str]* | :heavy_minus_sign: | The subsidiary the supplier belongs to. | 12345 | \ No newline at end of file +| `subsidiary_id` | *Optional[str]* | :heavy_minus_sign: | The subsidiary the supplier belongs to. | 12345 | +| `integration_system_id` | *Optional[str]* | :heavy_minus_sign: | The integration system the supplier belongs to. | 12345 | \ No newline at end of file diff --git a/docs/models/supplierinput.md b/docs/models/supplierinput.md index 622a8115..c2e427fd 100644 --- a/docs/models/supplierinput.md +++ b/docs/models/supplierinput.md @@ -30,7 +30,12 @@ | `payment_method` | *OptionalNullable[str]* | :heavy_minus_sign: | Payment method used for the transaction, such as cash, credit card, bank transfer, or check | cash | | `terms` | *OptionalNullable[str]* | :heavy_minus_sign: | Terms of payment. | Net 30 days | | `channel` | *OptionalNullable[str]* | :heavy_minus_sign: | The channel through which the transaction is processed. | email | +| `issued_method` | *OptionalNullable[str]* | :heavy_minus_sign: | Method of issuance of the purchase order for the supplier | Email | +| `issued_email` | *OptionalNullable[str]* | :heavy_minus_sign: | Email address of the person who issued the purchase order for the supplier | john.doe@example.com | | `custom_fields` | List[[models.CustomField](../models/customfield.md)] | :heavy_minus_sign: | N/A | | +| `tax_details` | List[[Nullable[models.LinkedTaxDetail]](../models/linkedtaxdetail.md)] | :heavy_minus_sign: | N/A | | +| `tax_status_details` | List[[Nullable[models.LinkedTaxStatusDetail]](../models/linkedtaxstatusdetail.md)] | :heavy_minus_sign: | N/A | | | `row_version` | *OptionalNullable[str]* | :heavy_minus_sign: | A binary value used to detect updates to a object and prevent data conflicts. It is incremented each time an update is made to the object. | 1-12345 | | `pass_through` | List[[models.PassThroughBody](../models/passthroughbody.md)] | :heavy_minus_sign: | The pass_through property allows passing service-specific, custom data or structured modifications in request body when creating or updating resources. | | -| `subsidiary_id` | *Optional[str]* | :heavy_minus_sign: | The subsidiary the supplier belongs to. | 12345 | \ No newline at end of file +| `subsidiary_id` | *Optional[str]* | :heavy_minus_sign: | The subsidiary the supplier belongs to. | 12345 | +| `integration_system_id` | *Optional[str]* | :heavy_minus_sign: | The integration system the supplier belongs to. | 12345 | \ No newline at end of file diff --git a/docs/sdks/suppliers/README.md b/docs/sdks/suppliers/README.md index d6e67ea3..f0ed30dd 100644 --- a/docs/sdks/suppliers/README.md +++ b/docs/sdks/suppliers/README.md @@ -189,13 +189,25 @@ with Apideck( "id": "123456", "nominal_code": "N091", "code": "453", - }, status=apideck_unify.SupplierStatus.ACTIVE, payment_method="cash", terms="Net 30 days", channel="email", custom_fields=[ + }, status=apideck_unify.SupplierStatus.ACTIVE, payment_method="cash", terms="Net 30 days", channel="email", issued_method="Email", issued_email="john.doe@example.com", custom_fields=[ { "id": "2389328923893298", "name": "employee_level", "description": "Employee Level", "value": True, }, + ], tax_details=[ + { + "type": "GST on Purchases", + "number": "123456", + "is_transaction_tax": True, + "is_primary_tax": True, + }, + ], tax_status_details=[ + { + "country": "US", + "transaction_tax_status": "taxable", + }, ], row_version="1-12345", pass_through=[ { "service_id": "", @@ -218,7 +230,7 @@ with Apideck( }, ], }, - ], subsidiary_id="12345") + ], subsidiary_id="12345", integration_system_id="12345") assert res.create_supplier_response is not None @@ -260,10 +272,15 @@ with Apideck( | `payment_method` | *OptionalNullable[str]* | :heavy_minus_sign: | Payment method used for the transaction, such as cash, credit card, bank transfer, or check | cash | | `terms` | *OptionalNullable[str]* | :heavy_minus_sign: | Terms of payment. | Net 30 days | | `channel` | *OptionalNullable[str]* | :heavy_minus_sign: | The channel through which the transaction is processed. | email | +| `issued_method` | *OptionalNullable[str]* | :heavy_minus_sign: | Method of issuance of the purchase order for the supplier | Email | +| `issued_email` | *OptionalNullable[str]* | :heavy_minus_sign: | Email address of the person who issued the purchase order for the supplier | john.doe@example.com | | `custom_fields` | List[[models.CustomField](../../models/customfield.md)] | :heavy_minus_sign: | N/A | | +| `tax_details` | List[[Nullable[models.LinkedTaxDetail]](../../models/linkedtaxdetail.md)] | :heavy_minus_sign: | N/A | | +| `tax_status_details` | List[[Nullable[models.LinkedTaxStatusDetail]](../../models/linkedtaxstatusdetail.md)] | :heavy_minus_sign: | N/A | | | `row_version` | *OptionalNullable[str]* | :heavy_minus_sign: | A binary value used to detect updates to a object and prevent data conflicts. It is incremented each time an update is made to the object. | 1-12345 | | `pass_through` | List[[models.PassThroughBody](../../models/passthroughbody.md)] | :heavy_minus_sign: | The pass_through property allows passing service-specific, custom data or structured modifications in request body when creating or updating resources. | | | `subsidiary_id` | *Optional[str]* | :heavy_minus_sign: | The subsidiary the supplier belongs to. | 12345 | +| `integration_system_id` | *Optional[str]* | :heavy_minus_sign: | The integration system the supplier belongs to. | 12345 | | `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | | ### Response @@ -444,7 +461,7 @@ with Apideck( "id": "123456", "nominal_code": "N091", "code": "453", - }, status=apideck_unify.SupplierStatus.ACTIVE, payment_method="cash", terms="Net 30 days", channel="email", custom_fields=[ + }, status=apideck_unify.SupplierStatus.ACTIVE, payment_method="cash", terms="Net 30 days", channel="email", issued_method="Email", issued_email="john.doe@example.com", custom_fields=[ { "id": "2389328923893298", "name": "employee_level", @@ -453,6 +470,18 @@ with Apideck( }, }, + ], tax_details=[ + { + "type": "GST on Purchases", + "number": "123456", + "is_transaction_tax": True, + "is_primary_tax": True, + }, + ], tax_status_details=[ + { + "country": "US", + "transaction_tax_status": "taxable", + }, ], row_version="1-12345", pass_through=[ { "service_id": "", @@ -493,7 +522,7 @@ with Apideck( }, ], }, - ], subsidiary_id="12345") + ], subsidiary_id="12345", integration_system_id="12345") assert res.update_supplier_response is not None @@ -536,10 +565,15 @@ with Apideck( | `payment_method` | *OptionalNullable[str]* | :heavy_minus_sign: | Payment method used for the transaction, such as cash, credit card, bank transfer, or check | cash | | `terms` | *OptionalNullable[str]* | :heavy_minus_sign: | Terms of payment. | Net 30 days | | `channel` | *OptionalNullable[str]* | :heavy_minus_sign: | The channel through which the transaction is processed. | email | +| `issued_method` | *OptionalNullable[str]* | :heavy_minus_sign: | Method of issuance of the purchase order for the supplier | Email | +| `issued_email` | *OptionalNullable[str]* | :heavy_minus_sign: | Email address of the person who issued the purchase order for the supplier | john.doe@example.com | | `custom_fields` | List[[models.CustomField](../../models/customfield.md)] | :heavy_minus_sign: | N/A | | +| `tax_details` | List[[Nullable[models.LinkedTaxDetail]](../../models/linkedtaxdetail.md)] | :heavy_minus_sign: | N/A | | +| `tax_status_details` | List[[Nullable[models.LinkedTaxStatusDetail]](../../models/linkedtaxstatusdetail.md)] | :heavy_minus_sign: | N/A | | | `row_version` | *OptionalNullable[str]* | :heavy_minus_sign: | A binary value used to detect updates to a object and prevent data conflicts. It is incremented each time an update is made to the object. | 1-12345 | | `pass_through` | List[[models.PassThroughBody](../../models/passthroughbody.md)] | :heavy_minus_sign: | The pass_through property allows passing service-specific, custom data or structured modifications in request body when creating or updating resources. | | | `subsidiary_id` | *Optional[str]* | :heavy_minus_sign: | The subsidiary the supplier belongs to. | 12345 | +| `integration_system_id` | *Optional[str]* | :heavy_minus_sign: | The integration system the supplier belongs to. | 12345 | | `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | | ### Response diff --git a/pyproject.toml b/pyproject.toml index abad1f35..04459ba0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,7 +1,7 @@ [project] name = "apideck-unify" -version = "0.21.4" +version = "0.21.5" description = "Python Client SDK Generated by Speakeasy." authors = [{ name = "Speakeasy" },] readme = "README-PYPI.md" diff --git a/src/apideck_unify/_version.py b/src/apideck_unify/_version.py index e0276cc9..d8acb7d2 100644 --- a/src/apideck_unify/_version.py +++ b/src/apideck_unify/_version.py @@ -3,10 +3,10 @@ import importlib.metadata __title__: str = "apideck-unify" -__version__: str = "0.21.4" -__openapi_doc_version__: str = "10.20.9" +__version__: str = "0.21.5" +__openapi_doc_version__: str = "10.20.10" __gen_version__: str = "2.686.7" -__user_agent__: str = "speakeasy-sdk/python 0.21.4 2.686.7 10.20.9 apideck-unify" +__user_agent__: str = "speakeasy-sdk/python 0.21.5 2.686.7 10.20.10 apideck-unify" try: if __package__ is not None: diff --git a/src/apideck_unify/models/__init__.py b/src/apideck_unify/models/__init__.py index 8cf34ca9..c01055f0 100644 --- a/src/apideck_unify/models/__init__.py +++ b/src/apideck_unify/models/__init__.py @@ -3510,8 +3510,13 @@ from .linkedpurchaseorder import LinkedPurchaseOrder, LinkedPurchaseOrderTypedDict from .linkedsupplier import LinkedSupplier, LinkedSupplierTypedDict from .linkedsupplier_input import LinkedSupplierInput, LinkedSupplierInputTypedDict + from .linkedtaxdetail import LinkedTaxDetail, LinkedTaxDetailTypedDict from .linkedtaxrate import LinkedTaxRate, LinkedTaxRateTypedDict from .linkedtaxrate_input import LinkedTaxRateInput, LinkedTaxRateInputTypedDict + from .linkedtaxstatusdetail import ( + LinkedTaxStatusDetail, + LinkedTaxStatusDetailTypedDict, + ) from .linkedtrackingcategory import ( LinkedTrackingCategory, LinkedTrackingCategoryTypedDict, @@ -6915,10 +6920,14 @@ "LinkedSupplierInput", "LinkedSupplierInputTypedDict", "LinkedSupplierTypedDict", + "LinkedTaxDetail", + "LinkedTaxDetailTypedDict", "LinkedTaxRate", "LinkedTaxRateInput", "LinkedTaxRateInputTypedDict", "LinkedTaxRateTypedDict", + "LinkedTaxStatusDetail", + "LinkedTaxStatusDetailTypedDict", "LinkedTrackingCategory", "LinkedTrackingCategoryTypedDict", "LinkedWorktag", @@ -10218,10 +10227,14 @@ "LinkedSupplierTypedDict": ".linkedsupplier", "LinkedSupplierInput": ".linkedsupplier_input", "LinkedSupplierInputTypedDict": ".linkedsupplier_input", + "LinkedTaxDetail": ".linkedtaxdetail", + "LinkedTaxDetailTypedDict": ".linkedtaxdetail", "LinkedTaxRate": ".linkedtaxrate", "LinkedTaxRateTypedDict": ".linkedtaxrate", "LinkedTaxRateInput": ".linkedtaxrate_input", "LinkedTaxRateInputTypedDict": ".linkedtaxrate_input", + "LinkedTaxStatusDetail": ".linkedtaxstatusdetail", + "LinkedTaxStatusDetailTypedDict": ".linkedtaxstatusdetail", "LinkedTrackingCategory": ".linkedtrackingcategory", "LinkedTrackingCategoryTypedDict": ".linkedtrackingcategory", "LinkedWorktag": ".linkedworktag", diff --git a/src/apideck_unify/models/job.py b/src/apideck_unify/models/job.py index a7875349..6b62a763 100644 --- a/src/apideck_unify/models/job.py +++ b/src/apideck_unify/models/job.py @@ -63,13 +63,43 @@ class Branch(BaseModel): class BlocksTypedDict(TypedDict): title: NotRequired[str] - content: NotRequired[str] + content: NotRequired[Nullable[str]] class Blocks(BaseModel): title: Optional[str] = None - content: Optional[str] = None + content: OptionalNullable[str] = UNSET + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = ["title", "content"] + nullable_fields = ["content"] + null_default_fields = [] + + serialized = handler(self) + + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k) + serialized.pop(k, None) + + optional_nullable = k in optional_fields and k in nullable_fields + is_set = ( + self.__pydantic_fields_set__.intersection({n}) + or k in null_default_fields + ) # pylint: disable=no-member + + if val is not None and val != UNSET_SENTINEL: + m[k] = val + elif val != UNSET_SENTINEL and ( + not k in optional_fields or (optional_nullable and is_set) + ): + m[k] = val + + return m class SalaryTypedDict(TypedDict): diff --git a/src/apideck_unify/models/linkedtaxdetail.py b/src/apideck_unify/models/linkedtaxdetail.py new file mode 100644 index 00000000..35715ab4 --- /dev/null +++ b/src/apideck_unify/models/linkedtaxdetail.py @@ -0,0 +1,68 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from apideck_unify.types import ( + BaseModel, + Nullable, + OptionalNullable, + UNSET, + UNSET_SENTINEL, +) +from pydantic import model_serializer +from typing import Optional +from typing_extensions import NotRequired, TypedDict + + +class LinkedTaxDetailTypedDict(TypedDict): + type: NotRequired[str] + r"""The type of tax.""" + number: NotRequired[Nullable[str]] + r"""The number of the tax.""" + is_transaction_tax: NotRequired[bool] + r"""Whether the tax is a transaction tax.""" + is_primary_tax: NotRequired[bool] + r"""Whether the tax is a primary tax.""" + + +class LinkedTaxDetail(BaseModel): + type: Optional[str] = None + r"""The type of tax.""" + + number: OptionalNullable[str] = UNSET + r"""The number of the tax.""" + + is_transaction_tax: Optional[bool] = None + r"""Whether the tax is a transaction tax.""" + + is_primary_tax: Optional[bool] = None + r"""Whether the tax is a primary tax.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = ["type", "number", "is_transaction_tax", "is_primary_tax"] + nullable_fields = ["number"] + null_default_fields = [] + + serialized = handler(self) + + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k) + serialized.pop(k, None) + + optional_nullable = k in optional_fields and k in nullable_fields + is_set = ( + self.__pydantic_fields_set__.intersection({n}) + or k in null_default_fields + ) # pylint: disable=no-member + + if val is not None and val != UNSET_SENTINEL: + m[k] = val + elif val != UNSET_SENTINEL and ( + not k in optional_fields or (optional_nullable and is_set) + ): + m[k] = val + + return m diff --git a/src/apideck_unify/models/linkedtaxstatusdetail.py b/src/apideck_unify/models/linkedtaxstatusdetail.py new file mode 100644 index 00000000..6b3484b3 --- /dev/null +++ b/src/apideck_unify/models/linkedtaxstatusdetail.py @@ -0,0 +1,58 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from apideck_unify.types import ( + BaseModel, + Nullable, + OptionalNullable, + UNSET, + UNSET_SENTINEL, +) +from pydantic import model_serializer +from typing import Optional +from typing_extensions import NotRequired, TypedDict + + +class LinkedTaxStatusDetailTypedDict(TypedDict): + country: NotRequired[str] + r"""The country of the tax status.""" + transaction_tax_status: NotRequired[Nullable[str]] + r"""The transaction tax status.""" + + +class LinkedTaxStatusDetail(BaseModel): + country: Optional[str] = None + r"""The country of the tax status.""" + + transaction_tax_status: OptionalNullable[str] = UNSET + r"""The transaction tax status.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = ["country", "transaction_tax_status"] + nullable_fields = ["transaction_tax_status"] + null_default_fields = [] + + serialized = handler(self) + + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k) + serialized.pop(k, None) + + optional_nullable = k in optional_fields and k in nullable_fields + is_set = ( + self.__pydantic_fields_set__.intersection({n}) + or k in null_default_fields + ) # pylint: disable=no-member + + if val is not None and val != UNSET_SENTINEL: + m[k] = val + elif val != UNSET_SENTINEL and ( + not k in optional_fields or (optional_nullable and is_set) + ): + m[k] = val + + return m diff --git a/src/apideck_unify/models/supplier.py b/src/apideck_unify/models/supplier.py index 0fb07dd5..9e0c604a 100644 --- a/src/apideck_unify/models/supplier.py +++ b/src/apideck_unify/models/supplier.py @@ -11,8 +11,10 @@ LinkedLedgerAccountInput, LinkedLedgerAccountInputTypedDict, ) +from .linkedtaxdetail import LinkedTaxDetail, LinkedTaxDetailTypedDict from .linkedtaxrate import LinkedTaxRate, LinkedTaxRateTypedDict from .linkedtaxrate_input import LinkedTaxRateInput, LinkedTaxRateInputTypedDict +from .linkedtaxstatusdetail import LinkedTaxStatusDetail, LinkedTaxStatusDetailTypedDict from .passthroughbody import PassThroughBody, PassThroughBodyTypedDict from .phonenumber import PhoneNumber, PhoneNumberTypedDict from .website import Website, WebsiteTypedDict @@ -86,9 +88,15 @@ class SupplierTypedDict(TypedDict): r"""Terms of payment.""" channel: NotRequired[Nullable[str]] r"""The channel through which the transaction is processed.""" + issued_method: NotRequired[Nullable[str]] + r"""Method of issuance of the purchase order for the supplier""" + issued_email: NotRequired[Nullable[str]] + r"""Email address of the person who issued the purchase order for the supplier""" custom_mappings: NotRequired[Nullable[Dict[str, Any]]] r"""When custom mappings are configured on the resource, the result is included here.""" custom_fields: NotRequired[List[CustomFieldTypedDict]] + tax_details: NotRequired[List[Nullable[LinkedTaxDetailTypedDict]]] + tax_status_details: NotRequired[List[Nullable[LinkedTaxStatusDetailTypedDict]]] updated_by: NotRequired[Nullable[str]] r"""The user who last updated the object.""" created_by: NotRequired[Nullable[str]] @@ -103,6 +111,8 @@ class SupplierTypedDict(TypedDict): r"""The pass_through property allows passing service-specific, custom data or structured modifications in request body when creating or updating resources.""" subsidiary_id: NotRequired[str] r"""The subsidiary the supplier belongs to.""" + integration_system_id: NotRequired[str] + r"""The integration system the supplier belongs to.""" class Supplier(BaseModel): @@ -178,11 +188,21 @@ class Supplier(BaseModel): channel: OptionalNullable[str] = UNSET r"""The channel through which the transaction is processed.""" + issued_method: OptionalNullable[str] = UNSET + r"""Method of issuance of the purchase order for the supplier""" + + issued_email: OptionalNullable[str] = UNSET + r"""Email address of the person who issued the purchase order for the supplier""" + custom_mappings: OptionalNullable[Dict[str, Any]] = UNSET r"""When custom mappings are configured on the resource, the result is included here.""" custom_fields: Optional[List[CustomField]] = None + tax_details: Optional[List[Nullable[LinkedTaxDetail]]] = None + + tax_status_details: Optional[List[Nullable[LinkedTaxStatusDetail]]] = None + updated_by: OptionalNullable[str] = UNSET r"""The user who last updated the object.""" @@ -204,6 +224,9 @@ class Supplier(BaseModel): subsidiary_id: Optional[str] = None r"""The subsidiary the supplier belongs to.""" + integration_system_id: Optional[str] = None + r"""The integration system the supplier belongs to.""" + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = [ @@ -233,8 +256,12 @@ def serialize_model(self, handler): "payment_method", "terms", "channel", + "issued_method", + "issued_email", "custom_mappings", "custom_fields", + "tax_details", + "tax_status_details", "updated_by", "created_by", "updated_at", @@ -242,6 +269,7 @@ def serialize_model(self, handler): "row_version", "pass_through", "subsidiary_id", + "integration_system_id", ] nullable_fields = [ "downstream_id", @@ -264,6 +292,8 @@ def serialize_model(self, handler): "payment_method", "terms", "channel", + "issued_method", + "issued_email", "custom_mappings", "updated_by", "created_by", @@ -340,13 +370,21 @@ class SupplierInputTypedDict(TypedDict): r"""Terms of payment.""" channel: NotRequired[Nullable[str]] r"""The channel through which the transaction is processed.""" + issued_method: NotRequired[Nullable[str]] + r"""Method of issuance of the purchase order for the supplier""" + issued_email: NotRequired[Nullable[str]] + r"""Email address of the person who issued the purchase order for the supplier""" custom_fields: NotRequired[List[CustomFieldTypedDict]] + tax_details: NotRequired[List[Nullable[LinkedTaxDetailTypedDict]]] + tax_status_details: NotRequired[List[Nullable[LinkedTaxStatusDetailTypedDict]]] row_version: NotRequired[Nullable[str]] r"""A binary value used to detect updates to a object and prevent data conflicts. It is incremented each time an update is made to the object.""" pass_through: NotRequired[List[PassThroughBodyTypedDict]] r"""The pass_through property allows passing service-specific, custom data or structured modifications in request body when creating or updating resources.""" subsidiary_id: NotRequired[str] r"""The subsidiary the supplier belongs to.""" + integration_system_id: NotRequired[str] + r"""The integration system the supplier belongs to.""" class SupplierInput(BaseModel): @@ -416,8 +454,18 @@ class SupplierInput(BaseModel): channel: OptionalNullable[str] = UNSET r"""The channel through which the transaction is processed.""" + issued_method: OptionalNullable[str] = UNSET + r"""Method of issuance of the purchase order for the supplier""" + + issued_email: OptionalNullable[str] = UNSET + r"""Email address of the person who issued the purchase order for the supplier""" + custom_fields: Optional[List[CustomField]] = None + tax_details: Optional[List[Nullable[LinkedTaxDetail]]] = None + + tax_status_details: Optional[List[Nullable[LinkedTaxStatusDetail]]] = None + row_version: OptionalNullable[str] = UNSET r"""A binary value used to detect updates to a object and prevent data conflicts. It is incremented each time an update is made to the object.""" @@ -427,6 +475,9 @@ class SupplierInput(BaseModel): subsidiary_id: Optional[str] = None r"""The subsidiary the supplier belongs to.""" + integration_system_id: Optional[str] = None + r"""The integration system the supplier belongs to.""" + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = [ @@ -455,10 +506,15 @@ def serialize_model(self, handler): "payment_method", "terms", "channel", + "issued_method", + "issued_email", "custom_fields", + "tax_details", + "tax_status_details", "row_version", "pass_through", "subsidiary_id", + "integration_system_id", ] nullable_fields = [ "display_id", @@ -480,6 +536,8 @@ def serialize_model(self, handler): "payment_method", "terms", "channel", + "issued_method", + "issued_email", "row_version", ] null_default_fields = [] diff --git a/src/apideck_unify/suppliers.py b/src/apideck_unify/suppliers.py index fcf24310..0b84168a 100644 --- a/src/apideck_unify/suppliers.py +++ b/src/apideck_unify/suppliers.py @@ -3,7 +3,7 @@ from .basesdk import BaseSDK from apideck_unify import models, utils from apideck_unify._hooks import HookContext -from apideck_unify.types import OptionalNullable, UNSET +from apideck_unify.types import Nullable, OptionalNullable, UNSET from apideck_unify.utils import get_security_from_env from apideck_unify.utils.unmarshal_json_response import unmarshal_json_response from jsonpath import JSONPath @@ -432,14 +432,29 @@ def create( payment_method: OptionalNullable[str] = UNSET, terms: OptionalNullable[str] = UNSET, channel: OptionalNullable[str] = UNSET, + issued_method: OptionalNullable[str] = UNSET, + issued_email: OptionalNullable[str] = UNSET, custom_fields: Optional[ Union[List[models.CustomField], List[models.CustomFieldTypedDict]] ] = None, + tax_details: Optional[ + Union[ + List[Nullable[models.LinkedTaxDetail]], + List[Nullable[models.LinkedTaxDetailTypedDict]], + ] + ] = None, + tax_status_details: Optional[ + Union[ + List[Nullable[models.LinkedTaxStatusDetail]], + List[Nullable[models.LinkedTaxStatusDetailTypedDict]], + ] + ] = None, row_version: OptionalNullable[str] = UNSET, pass_through: Optional[ Union[List[models.PassThroughBody], List[models.PassThroughBodyTypedDict]] ] = None, subsidiary_id: Optional[str] = None, + integration_system_id: Optional[str] = None, retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, @@ -478,10 +493,15 @@ def create( :param payment_method: Payment method used for the transaction, such as cash, credit card, bank transfer, or check :param terms: Terms of payment. :param channel: The channel through which the transaction is processed. + :param issued_method: Method of issuance of the purchase order for the supplier + :param issued_email: Email address of the person who issued the purchase order for the supplier :param custom_fields: + :param tax_details: + :param tax_status_details: :param row_version: A binary value used to detect updates to a object and prevent data conflicts. It is incremented each time an update is made to the object. :param pass_through: The pass_through property allows passing service-specific, custom data or structured modifications in request body when creating or updating resources. :param subsidiary_id: The subsidiary the supplier belongs to. + :param integration_system_id: The integration system the supplier belongs to. :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds @@ -540,14 +560,24 @@ def create( payment_method=payment_method, terms=terms, channel=channel, + issued_method=issued_method, + issued_email=issued_email, custom_fields=utils.get_pydantic_model( custom_fields, Optional[List[models.CustomField]] ), + tax_details=utils.get_pydantic_model( + tax_details, Optional[List[Nullable[models.LinkedTaxDetail]]] + ), + tax_status_details=utils.get_pydantic_model( + tax_status_details, + Optional[List[Nullable[models.LinkedTaxStatusDetail]]], + ), row_version=row_version, pass_through=utils.get_pydantic_model( pass_through, Optional[List[models.PassThroughBody]] ), subsidiary_id=subsidiary_id, + integration_system_id=integration_system_id, ), ) @@ -697,14 +727,29 @@ async def create_async( payment_method: OptionalNullable[str] = UNSET, terms: OptionalNullable[str] = UNSET, channel: OptionalNullable[str] = UNSET, + issued_method: OptionalNullable[str] = UNSET, + issued_email: OptionalNullable[str] = UNSET, custom_fields: Optional[ Union[List[models.CustomField], List[models.CustomFieldTypedDict]] ] = None, + tax_details: Optional[ + Union[ + List[Nullable[models.LinkedTaxDetail]], + List[Nullable[models.LinkedTaxDetailTypedDict]], + ] + ] = None, + tax_status_details: Optional[ + Union[ + List[Nullable[models.LinkedTaxStatusDetail]], + List[Nullable[models.LinkedTaxStatusDetailTypedDict]], + ] + ] = None, row_version: OptionalNullable[str] = UNSET, pass_through: Optional[ Union[List[models.PassThroughBody], List[models.PassThroughBodyTypedDict]] ] = None, subsidiary_id: Optional[str] = None, + integration_system_id: Optional[str] = None, retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, @@ -743,10 +788,15 @@ async def create_async( :param payment_method: Payment method used for the transaction, such as cash, credit card, bank transfer, or check :param terms: Terms of payment. :param channel: The channel through which the transaction is processed. + :param issued_method: Method of issuance of the purchase order for the supplier + :param issued_email: Email address of the person who issued the purchase order for the supplier :param custom_fields: + :param tax_details: + :param tax_status_details: :param row_version: A binary value used to detect updates to a object and prevent data conflicts. It is incremented each time an update is made to the object. :param pass_through: The pass_through property allows passing service-specific, custom data or structured modifications in request body when creating or updating resources. :param subsidiary_id: The subsidiary the supplier belongs to. + :param integration_system_id: The integration system the supplier belongs to. :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds @@ -805,14 +855,24 @@ async def create_async( payment_method=payment_method, terms=terms, channel=channel, + issued_method=issued_method, + issued_email=issued_email, custom_fields=utils.get_pydantic_model( custom_fields, Optional[List[models.CustomField]] ), + tax_details=utils.get_pydantic_model( + tax_details, Optional[List[Nullable[models.LinkedTaxDetail]]] + ), + tax_status_details=utils.get_pydantic_model( + tax_status_details, + Optional[List[Nullable[models.LinkedTaxStatusDetail]]], + ), row_version=row_version, pass_through=utils.get_pydantic_model( pass_through, Optional[List[models.PassThroughBody]] ), subsidiary_id=subsidiary_id, + integration_system_id=integration_system_id, ), ) @@ -1251,14 +1311,29 @@ def update( payment_method: OptionalNullable[str] = UNSET, terms: OptionalNullable[str] = UNSET, channel: OptionalNullable[str] = UNSET, + issued_method: OptionalNullable[str] = UNSET, + issued_email: OptionalNullable[str] = UNSET, custom_fields: Optional[ Union[List[models.CustomField], List[models.CustomFieldTypedDict]] ] = None, + tax_details: Optional[ + Union[ + List[Nullable[models.LinkedTaxDetail]], + List[Nullable[models.LinkedTaxDetailTypedDict]], + ] + ] = None, + tax_status_details: Optional[ + Union[ + List[Nullable[models.LinkedTaxStatusDetail]], + List[Nullable[models.LinkedTaxStatusDetailTypedDict]], + ] + ] = None, row_version: OptionalNullable[str] = UNSET, pass_through: Optional[ Union[List[models.PassThroughBody], List[models.PassThroughBodyTypedDict]] ] = None, subsidiary_id: Optional[str] = None, + integration_system_id: Optional[str] = None, retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, @@ -1298,10 +1373,15 @@ def update( :param payment_method: Payment method used for the transaction, such as cash, credit card, bank transfer, or check :param terms: Terms of payment. :param channel: The channel through which the transaction is processed. + :param issued_method: Method of issuance of the purchase order for the supplier + :param issued_email: Email address of the person who issued the purchase order for the supplier :param custom_fields: + :param tax_details: + :param tax_status_details: :param row_version: A binary value used to detect updates to a object and prevent data conflicts. It is incremented each time an update is made to the object. :param pass_through: The pass_through property allows passing service-specific, custom data or structured modifications in request body when creating or updating resources. :param subsidiary_id: The subsidiary the supplier belongs to. + :param integration_system_id: The integration system the supplier belongs to. :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds @@ -1361,14 +1441,24 @@ def update( payment_method=payment_method, terms=terms, channel=channel, + issued_method=issued_method, + issued_email=issued_email, custom_fields=utils.get_pydantic_model( custom_fields, Optional[List[models.CustomField]] ), + tax_details=utils.get_pydantic_model( + tax_details, Optional[List[Nullable[models.LinkedTaxDetail]]] + ), + tax_status_details=utils.get_pydantic_model( + tax_status_details, + Optional[List[Nullable[models.LinkedTaxStatusDetail]]], + ), row_version=row_version, pass_through=utils.get_pydantic_model( pass_through, Optional[List[models.PassThroughBody]] ), subsidiary_id=subsidiary_id, + integration_system_id=integration_system_id, ), ) @@ -1519,14 +1609,29 @@ async def update_async( payment_method: OptionalNullable[str] = UNSET, terms: OptionalNullable[str] = UNSET, channel: OptionalNullable[str] = UNSET, + issued_method: OptionalNullable[str] = UNSET, + issued_email: OptionalNullable[str] = UNSET, custom_fields: Optional[ Union[List[models.CustomField], List[models.CustomFieldTypedDict]] ] = None, + tax_details: Optional[ + Union[ + List[Nullable[models.LinkedTaxDetail]], + List[Nullable[models.LinkedTaxDetailTypedDict]], + ] + ] = None, + tax_status_details: Optional[ + Union[ + List[Nullable[models.LinkedTaxStatusDetail]], + List[Nullable[models.LinkedTaxStatusDetailTypedDict]], + ] + ] = None, row_version: OptionalNullable[str] = UNSET, pass_through: Optional[ Union[List[models.PassThroughBody], List[models.PassThroughBodyTypedDict]] ] = None, subsidiary_id: Optional[str] = None, + integration_system_id: Optional[str] = None, retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, @@ -1566,10 +1671,15 @@ async def update_async( :param payment_method: Payment method used for the transaction, such as cash, credit card, bank transfer, or check :param terms: Terms of payment. :param channel: The channel through which the transaction is processed. + :param issued_method: Method of issuance of the purchase order for the supplier + :param issued_email: Email address of the person who issued the purchase order for the supplier :param custom_fields: + :param tax_details: + :param tax_status_details: :param row_version: A binary value used to detect updates to a object and prevent data conflicts. It is incremented each time an update is made to the object. :param pass_through: The pass_through property allows passing service-specific, custom data or structured modifications in request body when creating or updating resources. :param subsidiary_id: The subsidiary the supplier belongs to. + :param integration_system_id: The integration system the supplier belongs to. :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds @@ -1629,14 +1739,24 @@ async def update_async( payment_method=payment_method, terms=terms, channel=channel, + issued_method=issued_method, + issued_email=issued_email, custom_fields=utils.get_pydantic_model( custom_fields, Optional[List[models.CustomField]] ), + tax_details=utils.get_pydantic_model( + tax_details, Optional[List[Nullable[models.LinkedTaxDetail]]] + ), + tax_status_details=utils.get_pydantic_model( + tax_status_details, + Optional[List[Nullable[models.LinkedTaxStatusDetail]]], + ), row_version=row_version, pass_through=utils.get_pydantic_model( pass_through, Optional[List[models.PassThroughBody]] ), subsidiary_id=subsidiary_id, + integration_system_id=integration_system_id, ), ) From c1fe9789a36ae43a1a6608463916cf96f65db7d9 Mon Sep 17 00:00:00 2001 From: "speakeasy-github[bot]" <128539517+speakeasy-github[bot]@users.noreply.github.com> Date: Thu, 21 Aug 2025 11:26:53 +0000 Subject: [PATCH 2/2] empty commit to trigger [run-tests] workflow