inventree-sdk-java
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency> <groupId>com.w3asel</groupId> <artifactId>inventree-sdk-java</artifactId> <version>0.17.294.4</version> </dependency>
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.w3asel</groupId> <artifactId>inventree-sdk-java</artifactId> <packaging>jar</packaging> <version>0.17.294.4</version> <name>InvenTree SDK (Java)</name> <description>A Java implementation of the OpenAPI spec published by InvenTree to allow interfacing with a server.</description> <url>https://github.com/1337joe/inventree-sdk-java</url> <licenses> <license> <name>MIT License</name> <url>http://www.opensource.org/licenses/mit-license.php</url> </license> </licenses> <developers> <developer> <name>Joseph Rogers</name> <email>joe@w3asel.com</email> <url>https://www.w3asel.com</url> </developer> </developers> <scm> <connection>scm:git@github.com:1337joe/inventree-sdk-java.git</connection> <developerConnection>scm:git@github.com:1337joe/inventree-sdk-java.git</developerConnection> <url>https://github.com/1337joe/inventree-sdk-java</url> </scm> <properties> <java.version>1.8</java.version> <maven.compiler.source>${java.version}</maven.compiler.source> <maven.compiler.target>${java.version}</maven.compiler.target> <gson-fire-version>1.9.0</gson-fire-version> <okhttp-version>4.12.0</okhttp-version> <gson-version>2.13.1</gson-version> <commons-lang3-version>3.17.0</commons-lang3-version> <jackson-databind-nullable-version>0.2.6</jackson-databind-nullable-version> <jakarta-annotation-version>1.3.5</jakarta-annotation-version> <beanvalidation-version>2.0.2</beanvalidation-version> <junit-version>5.10.3</junit-version> <junit-platform-runner.version>1.10.0</junit-platform-runner.version> <jakarta.ws.rs-api-version>4.0.0</jakarta.ws.rs-api-version> <jsr311-api-version>1.1.1</jsr311-api-version> <jsr305-version>3.0.2</jsr305-version> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <junit.version>5.13.1</junit.version> <plugin-replacer.version>1.5.3</plugin-replacer.version> <plugin-openapi-generator.version>7.13.0</plugin-openapi-generator.version> <plugin-javadoc.version>3.11.2</plugin-javadoc.version> <plugin-source.version>3.3.1</plugin-source.version> <plugin-gpg.version>3.2.7</plugin-gpg.version> <plugin-central-publishing.version>0.8.0</plugin-central-publishing.version> </properties> <dependencies> <!-- @Nullable annotation --> <dependency> <groupId>com.google.code.findbugs</groupId> <artifactId>jsr305</artifactId> <version>${jsr305-version}</version> </dependency> <dependency> <groupId>com.squareup.okhttp3</groupId> <artifactId>okhttp</artifactId> <version>${okhttp-version}</version> </dependency> <dependency> <groupId>com.squareup.okhttp3</groupId> <artifactId>logging-interceptor</artifactId> <version>${okhttp-version}</version> </dependency> <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>${gson-version}</version> </dependency> <dependency> <groupId>io.gsonfire</groupId> <artifactId>gson-fire</artifactId> <version>${gson-fire-version}</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>${commons-lang3-version}</version> </dependency> <dependency> <groupId>jakarta.annotation</groupId> <artifactId>jakarta.annotation-api</artifactId> <version>${jakarta-annotation-version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.openapitools</groupId> <artifactId>jackson-databind-nullable</artifactId> <version>${jackson-databind-nullable-version}</version> </dependency> <dependency> <groupId>jakarta.ws.rs</groupId> <artifactId>jakarta.ws.rs-api</artifactId> <version>${jakarta.ws.rs-api-version}</version> </dependency> <!-- test dependencies --> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter</artifactId> <version>${junit.version}</version> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>com.google.code.maven-replacer-plugin</groupId> <artifactId>replacer</artifactId> <version>${plugin-replacer.version}</version> <executions> <execution> <id>fix-schema</id> <phase>validate</phase> <goals> <goal>replace</goal> </goals> </execution> </executions> <configuration> <file>src/main/resources/api.yaml</file> <regex>true</regex> <regexFlags> <regexFlag>MULTILINE</regexFlag> </regexFlags> <replacements> <!-- null keyword breaks enum builder --> <replacement> <token>- null$</token> <value>- nullValue</value> </replacement> <!-- list endpoints require limit fields to return the expected type --> <replacement> <token>name: (limit)(\n\s+)required: false</token> <value>name: $1$2required: true</value> </replacement> <!-- misc elements that shouldn't be required --> <replacement> <token>^\s+- overdue$\n</token> <value></value> </replacement> <replacement> <token>^\s+- project_code_label$\n</token> <value></value> </replacement> <replacement> <token>^\s+- MPN$\n</token> <value></value> </replacement> <replacement> <token>^\s+- category_default_location$\n</token> <value></value> </replacement> <replacement> <token>^\s+- tracking_items$\n</token> <value></value> </replacement> <replacement> <token>^\s+- manufacturer$\n</token> <value></value> </replacement> <replacement> <token>^\s+- expired$\n</token> <value></value> </replacement> <replacement> <token>^\s+- serial$\n</token> <value></value> </replacement> <replacement> <token>^\s+- completed_shipments_count$\n</token> <value></value> </replacement> <replacement> <token>^\s+- model_name$\n</token> <value></value> </replacement> <replacement> <token>^\s+- sales_order_reference$\n</token> <value></value> </replacement> <replacement> <token>^\s+- responsible_detail$\n</token> <value></value> </replacement> <replacement> <token>^\s+- purchase_order_reference$\n</token> <value></value> </replacement> <replacement> <token>^\s+- completed_lines$\n</token> <value></value> </replacement> <replacement> <token>^\s+- project_code_detail$\n</token> <value></value> </replacement> <replacement> <token>^\s+- api_url$\n</token> <value></value> </replacement> <replacement> <token>^\s+- parts$\n</token> <value></value> </replacement> <replacement> <token>^\s+- installed_items$\n</token> <value></value> </replacement> <replacement> <token>^\s+- allocated_items$\n</token> <value></value> </replacement> <replacement> <token>^\s+- shipments_count$\n</token> <value></value> </replacement> <replacement> <token>^\s+- unallocated_stock$\n</token> <value></value> </replacement> <replacement> <token>^\s+- SKU$\n</token> <value></value> </replacement> <replacement> <token>^\s+- image$\n</token> <value></value> </replacement> <replacement> <token>^\s+- suppliers$\n</token> <value></value> </replacement> <replacement> <token>^\s+- stale$\n</token> <value></value> </replacement> <replacement> <token>^\s+- line_items$\n</token> <value></value> </replacement> <replacement> <token>^\s+- address_detail$\n</token> <value></value> </replacement> <replacement> <token>^\s+- child_items$\n</token> <value></value> </replacement> <replacement> <token>^\s+- ordering$\n</token> <value></value> </replacement> <replacement> <token>^\s+- contact_detail$\n</token> <value></value> </replacement> <replacement> <token>^\s+- allocated$\n</token> <value></value> </replacement> <replacement> <token>^\s+- stock_item_count$\n</token> <value></value> </replacement> <replacement> <token>^\s+- variant_stock$\n</token> <value></value> </replacement> <replacement> <token>^\s+- location_name$\n</token> <value></value> </replacement> <replacement> <token>^\s+- destination_detail$\n</token> <value></value> </replacement> <replacement> <token>^\s+- ipn$\n</token> <value></value> </replacement> <replacement> <token>^\s+- revision_count$\n</token> <value></value> </replacement> <replacement> <token>^\s+- mpn$\n</token> <value></value> </replacement> <replacement> <token>^\s+- in_stock$\n</token> <value></value> </replacement> <replacement> <token>^\s+- building$\n</token> <value></value> </replacement> <replacement> <token>^\s+- required_for_build_orders$\n</token> <value></value> </replacement> <replacement> <token>^\s+- total_in_stock$\n</token> <value></value> </replacement> <replacement> <token>^\s+- required_for_sales_orders$\n</token> <value></value> </replacement> <replacement> <token>^\s+- allocated_to_sales_orders$\n</token> <value></value> </replacement> <replacement> <token>^\s+- allocated_to_build_orders$\n</token> <value></value> </replacement> <replacement> <token>^\s+- external_stock$\n</token> <value></value> </replacement> <replacement> <token>^\s+- commit_branch$\n</token> <value></value> </replacement> <replacement> <token>^\s+- name$\n</token> <value></value> </replacement> <replacement> <token>^\s+- subcategories$\n</token> <value></value> </replacement> <replacement> <token>^\s+- item_serial_number$\n</token> <value></value> </replacement> <replacement> <token>^\s+- can_build$\n</token> <value></value> </replacement> <replacement> <token>^\s+- parent_default_location$\n</token> <value></value> </replacement> <replacement> <token>^\s+- func$\n</token> <value></value> </replacement> <replacement> <token>^\s+- target$\n</token> <value></value> </replacement> <replacement> <token>^\s+- location_count$\n</token> <value></value> </replacement> <replacement> <token>^\s+- part_count$\n</token> <value></value> </replacement> <replacement> <token>^\s+- args$\n</token> <value></value> </replacement> <replacement> <token>^\s+- on_order$\n</token> <value></value> </replacement> <replacement> <token>^\s+- available_variant_stock$\n</token> <value></value> </replacement> <replacement> <token>^\s+- kwargs$\n</token> <value></value> </replacement> <replacement> <token>^\s+- available_stock$\n</token> <value></value> </replacement> <replacement> <token>^\s+- location_type_detail$\n</token> <value></value> </replacement> <replacement> <token>^\s+- available_substitute_stock$\n</token> <value></value> </replacement> <replacement> <token>^\s+- part_IPN$\n</token> <value></value> </replacement> <!-- remove now-empty required list tags --> <replacement> <token>^(\s+)required:\n((?!\1))</token> <value>$2</value> </replacement> <!-- replace customizable enums with their keys as primitive types --> <replacement> <token>(allOf|oneOf):(\n\s+- \$ref: '#/components/schemas/SalePriceCurrencyEnum')(\n\s+- \$ref: '#/components/schemas/(Blank|Null)Enum')*</token> <value>type: string</value> </replacement> <replacement> <token>(allOf|oneOf):(\n\s+- \$ref: '#/components/schemas/[a-zA-Z]*StatusCustomKey[a-zA-Z0-9]*Enum')(\n\s+- \$ref: '#/components/schemas/(Blank|Null)Enum')*</token> <value>type: integer</value> </replacement> <replacement> <token>(allOf|oneOf):(\n\s+- \$ref: '#/components/schemas/Status2a7Enum')(\n\s+- \$ref: '#/components/schemas/(Blank|Null)Enum')*</token> <value>type: integer</value> </replacement> <!-- replace other problematic enums --> <replacement> <token>(allOf|oneOf):(\n\s+- \$ref: '#/components/schemas/DefaultLocaleEnum')(\n\s+- \$ref: '#/components/schemas/(Blank|Null)Enum')*</token> <value>type: string</value> </replacement> <!-- convert string type PK path variables to int --> <replacement> <token>schema:(\n\s+)type: string\n\s+pattern: \^(\[0-9\]|\\d)+.*\$</token> <value>schema:$1type: integer</value> </replacement> <!-- fix endpoints for bulk delete --> <replacement> <token>(attachment|background_task_failed|background_task_pending|barcode_history|bom|build_item|company_address|company_contact|company_part|company_part_manufacturer|company_part_manufacturer_parameter|error_report|importer_row|importer_session|news|notifications|order_po_line|stock|stock_test|user_tokens)_destroy(\n\s+)description: \|-(\n\s+Perform)</token> <value>$1_bulk_destroy$2requestBody:$2 content:$2 application/json:$2 schema:$2 \$ref: '#/components/schemas/BulkRequest'$2 application/x-www-form-urlencoded:$2 schema:$2 \$ref: '#/components/schemas/BulkRequest'$2 application/form-data:$2 schema:$2 \$ref: '#/components/schemas/BulkRequest'$2 required: true$2description: |-$3</value> </replacement> <replacement> <token>(?<!user_tokens)_destroy_2</token> <value>_destroy</value> </replacement> <replacement> <token>output(\n\s+)Category:</token> <value>output$1BulkRequest:$1 type: object$1 description: Parameters for selecting items for bulk operations.$1 properties:$1 items:$1 type: array$1 items:$1 type: integer$1 title: A list of primary key values$1 filters:$1 type: object$1 additionalProperties: {}$1 title: A dictionary of filter values$1Category:</value> </replacement> <!-- fix query parameter and permissions types --> <replacement> <token>(in: query\n\s+name: (ancestor|category|company|part|supplier_part|base_part)\n\s+schema:\n\s+type: )string$</token> <value>$1integer</value> </replacement> <replacement> <token>permissions:(\n\s+)type: string</token> <value>permissions:$1type: object$1additionalProperties: {}</value> </replacement> <!-- fill in GenericState responsees --> <replacement> <token>'200':(\n\s+)description: Status code information</token> <value>'200':$1content:$1 application/json:$1 schema:$1 \$ref: '#/components/schemas/GenericStateClass'$1description: Status code information</value> </replacement> <replacement> <token>email(\n\s+)GlobalSettings:</token> <value>email$1GenericStateClass:$1 type: object$1 description: API serializer for generic state class information.$1 properties:$1 class:$1 type: string$1 readOnly: true$1 title: Class$1 values:$1 type: object$1 additionalProperties:$1 \$ref: '#/components/schemas/GenericStateValue'$1 required:$1 - status_class$1 - values$1GenericStateValue:$1 type: object$1 description: API serializer for generic state information.$1 properties:$1 key:$1 type: integer$1 logical_key:$1 type: string$1 name:$1 type: string$1 label:$1 type: string$1 color:$1 type: string$1 custom:$1 type: boolean$1 required:$1 - key$1 - label$1 - name$1GlobalSettings:</value> </replacement> <!-- map remaining enum names --> <replacement> <token>ModelType28bEnum</token> <value>TemplateModelTypeEnum</value> </replacement> <replacement> <token>StatusC2fEnum</token> <value>BuildStatusEnum</value> </replacement> <replacement> <token>Status2a7Enum</token> <value>StockItemStatusEnum</value> </replacement> <!-- fix endpoints for remaining bulk operations --> <replacement> <token>(/api/generic/status/:\n\s+get:\n\s+operationId: )generic_status_retrieve$</token> <value>$1generic_status_retrieve_all</value> </replacement> <replacement> <token>(/api/generic/status/\{statusmodel\}/:\n\s+get:\n\s+operationId: )generic_status_retrieve_2</token> <value>$1generic_status_retrieve</value> </replacement> <replacement> <token>importer_models_retrieve$</token> <value>importer_models_list</value> </replacement> <replacement> <token>'200':(\n\s+)description: No response body(\n\s+/api/importer/row/:)</token> <value>'200':$1content:$1 application/json:$1 schema:$1 type: array$1 items:$1 \$ref: '#/components/schemas/DataImporterModel'$1description: ''$2</value> </replacement> <replacement> <token>pk(\n\s+)DataImportAcceptRow:</token> <value>pk$1DataImporterModel:$1 type: object$1 description: Model references to map info that might get imported.$1 properties:$1 serializer:$1 type: string$1 readOnly: true$1 model_type:$1 type: string$1 readOnly: true$1 api_url:$1 type: string$1 format: uri$1 readOnly: true$1 required:$1 - model_type$1 - serializer$1DataImportAcceptRow:</value> </replacement> <replacement> <token>plugins_settings_list(\n\s+description: \|-\n\s+List endpoint)</token> <value>plugins_settings_list_all$1</value> </replacement> <replacement> <token>plugins_settings_list_2$</token> <value>plugins_settings_list</value> </replacement> <!-- units list serializer fixes --> <replacement> <token>(description: Return a list of all available units.)\n\s+parameters:\n^.+$\n^.+$\n^.+$\n^.+$\n^.+$\n^.+$\n^.+$\n^.+$\n^.+$\n^.+$\n^.+$\n^.+$</token> <value>$1</value> </replacement> <replacement> <token>schemas/PaginatedAllUnitListResponseList</token> <value>schemas/AllUnitListResponse</value> </replacement> <replacement> <token>available_units:(\n\s+)type: array\n\s+items:</token> <value>available_units:$1type: object$1additionalProperties:</value> </replacement> <replacement> <token>(frontend|backend):(\n\s+)type: string$</token> <value>$1:$2type: array$2items: {}</value> </replacement> <!-- serial number generator fixes--> <replacement> <token>serial:(\n\s+type: string\n\s+readOnly: true\n\s+)title: Serial Number</token> <value>serial_number:$1nullable: true</value> </replacement> </replacements> </configuration> </plugin> <plugin> <groupId>org.openapitools</groupId> <artifactId>openapi-generator-maven-plugin</artifactId> <version>${plugin-openapi-generator.version}</version> <executions> <execution> <goals> <goal>generate</goal> </goals> <configuration> <groupId>com.w3asel</groupId> <artifactId>inventree-sdk-java</artifactId> <inputSpec>${project.basedir}/src/main/resources/api.yaml</inputSpec> <skipIfSpecIsUnchanged>true</skipIfSpecIsUnchanged> <generatorName>java</generatorName> <generateModelTests>false</generateModelTests> <generateModelDocumentation>false</generateModelDocumentation> <generateApiTests>false</generateApiTests> <generateApiDocumentation>false</generateApiDocumentation> <configOptions> <apiPackage>com.w3asel.inventree.api</apiPackage> <modelPackage>com.w3asel.inventree.model</modelPackage> <invokerPackage>com.w3asel.inventree.invoker</invokerPackage> <dateLibrary>java8</dateLibrary> </configOptions> <!-- TODO none of these work --> <nameMappings> <nameMapping>null=_null</nameMapping> </nameMappings> <parameterNameMappings> <parameterNameMapping>null=_null</parameterNameMapping> </parameterNameMappings> <reservedWordsMappings> <reservedWordsMapping>null=_null</reservedWordsMapping> </reservedWordsMappings> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <version>${plugin-javadoc.version}</version> <configuration> <tags> <tag> <name>http.response.details</name> <placement>a</placement> <head>HTTP Response Details:</head> </tag> </tags> </configuration> </plugin> </plugins> </build> <profiles> <profile> <id>publish</id> <properties> <skipTests>true</skipTests> </properties> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <version>${plugin-javadoc.version}</version> <executions> <execution> <id>attach-javadocs</id> <goals> <goal>jar</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> <version>${plugin-source.version}</version> <executions> <execution> <id>attach-sources</id> <goals> <goal>jar-no-fork</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-gpg-plugin</artifactId> <version>${plugin-gpg.version}</version> <executions> <execution> <id>sign-artifacts</id> <phase>verify</phase> <goals> <goal>sign</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.sonatype.central</groupId> <artifactId>central-publishing-maven-plugin</artifactId> <version>${plugin-central-publishing.version}</version> <extensions>true</extensions> <configuration> <publishingServerId>central</publishingServerId> <autoPublish>true</autoPublish> <waitUntil>published</waitUntil> <checksums>required</checksums> </configuration> </plugin> </plugins> </build> </profile> </profiles> </project>