Skip to content

PLAT-5596: Updates from OpenAPI definition #61

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
May 7, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,21 +17,21 @@ The client can be used with Java 1.8+ and pulled into Maven or Gradle projects.
<dependency>
<groupId>com.vertexvis</groupId>
<artifactId>api-client-java</artifactId>
<version>0.9.0</version>
<version>0.10.0</version>
<scope>compile</scope>
</dependency>
```

### Gradle

```groovy
compile "com.vertexvis:api-client-java:0.9.0"
compile "com.vertexvis:api-client-java:0.10.0"
```

### Sbt

```sbt
libraryDependencies += "com.vertexvis" % "api-client-java" % "0.9.0"
libraryDependencies += "com.vertexvis" % "api-client-java" % "0.10.0"
```

### Others
Expand All @@ -44,7 +44,7 @@ mvn clean package

Then manually install the following JARs.

- `target/api-client-java-0.9.0.jar`
- `target/api-client-java-0.10.0.jar`
- `target/lib/*.jar`

## Usage
Expand Down
182 changes: 127 additions & 55 deletions api/openapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ tags:
- name: accounts
- name: applications
- name: batches
- name: exports
- name: files
- name: file-collections
- name: geometry-sets
Expand All @@ -37,6 +38,7 @@ tags:
- name: oauth2
- name: part-renditions
- name: part-revisions
- name: part-revision-instances
- name: parts
- name: pmi
- name: property-entries
Expand All @@ -51,6 +53,7 @@ tags:
- name: stream-keys
- name: translation-inspections
- name: webhook-subscriptions
- name: permission-grants
paths:
/accounts:
post:
Expand Down Expand Up @@ -1614,6 +1617,57 @@ paths:
x-contentType: application/vnd.api+json
x-accepts: application/vnd.api+json
/file-collections/{id}/files:
delete:
description: Remove a file from a `file-collection`.
operationId: removeFileCollectionFiles
parameters:
- description: The `file-collection` ID.
explode: false
in: path
name: id
required: true
schema:
$ref: '#/components/schemas/Uuid'
style: simple
- description: Comma-separated list of file-ids to filter on.
explode: true
in: query
name: filter[fileId]
required: false
schema:
example: some-id-1,some-id-2
type: string
style: form
responses:
"204":
description: No Content
"401":
content:
application/vnd.api+json:
example:
errors:
- status: "401"
code: Unauthorized
title: Invalid or missing credentials.
schema:
$ref: '#/components/schemas/Failure'
description: Unauthorized
"404":
content:
application/vnd.api+json:
example:
errors:
- status: "404"
code: NotFound
title: The requested resource was not found.
schema:
$ref: '#/components/schemas/Failure'
description: Not Found
security:
- OAuth2: []
tags:
- file-collections
x-accepts: application/vnd.api+json
get:
description: List the files in a `file-collection`.
operationId: listFileCollectionFiles
Expand Down Expand Up @@ -2561,21 +2615,9 @@ paths:
x-scala-package: translations
x-accepts: application/vnd.api+json
patch:
description: "Update a `part-revision`. When given a `file` relationship as\
\ a payload, this will invoke a translation job, similar to the POST /parts\
\ endpoint. The response code will be a 202 and will respond with an async\
\ workflow, and return an Accepted[QueuedJob]. The geometry of the part and\
\ all of its children will be replaced with the geometry specified within\
\ the translated file given from this relationship. Some of the properties\
\ given here are only used for the translation of the file. Namely, `indexMetadata`,\
\ `name`, `suppliedIdKey`, `suppliedRevisionIdKey`, and `suppliedInstanceIdKey`.\
\ Note that geometry updates are eventually consistent and will not update\
\ existing scenes. \nFor updates to the revision when the file relationship\
\ is not present will respond with a standard 200 ok code when successful.\
\ Note that metadata updates are eventually consistent and will not update\
\ existing scenes. To view updated metadata within a scene, a new scene\
\ must be created or the updated part-revision must be removed and re-added\
\ to an existing scene.\n"
description: |
Update a `part-revision`. When given a `file` relationship as a payload, this will invoke a translation job, similar to the POST /parts endpoint. The response code will be a 202 and will respond with an async workflow, and return an Accepted[QueuedJob]. The geometry of the part and all of its children will be replaced with the geometry specified within the translated file given from this relationship. Some of the properties given here are only used for the translation of the file. Namely, `indexMetadata`, `name`, `suppliedIdKey`, `suppliedRevisionIdKey`, and `suppliedInstanceIdKey`. Note that geometry updates are eventually consistent and will not update existing scenes.
For updates to the revision when the file relationship is not present will respond with a standard 200 ok code when successful. Note that metadata updates are eventually consistent and will not update existing scenes. To view updated metadata within a scene, a new scene must be created or the updated part-revision must be removed and re-added to an existing scene.
operationId: updatePartRevision
parameters:
- description: The `part-revision` ID.
Expand Down Expand Up @@ -2661,6 +2703,7 @@ paths:
x-accepts: application/vnd.api+json
/part-revisions/{id}/part-renditions:
post:
description: Creates a part-rendition associated with a part-revision
operationId: createPartRendition
parameters:
- description: The `part-revision` ID.
Expand Down Expand Up @@ -2928,7 +2971,7 @@ paths:
/part-revision-instances:
get:
description: |
Gets a page of 'part-revision' instances. An instance is an occurence of a revision that is a child of a parent revision. The returned data will have the ordinal used for ordering and the transform matrix for each occurrence.
Gets a page of 'part-revision' instances. An instance is an occurence of a revision that is a child of a parent revision. The returned data will have the ordinal used for ordering and the transform matrix for each occurrence.
operationId: getPartRevisionInstanceList
parameters:
- description: Parent ID to filter on.
Expand Down Expand Up @@ -3183,21 +3226,25 @@ paths:
- parts
x-accepts: application/vnd.api+json
post:
description: "Create a `part`.\n\nThis endpoint includes multiple successful\
\ response codes: [`201`, `202`].\n\nWhen not given a relationship, this endpoint\
\ will create a part with an empty part revision and return a `201` \nstatus\
\ code of the part.\n\nWhen given a relationship to translate, this endpoint\
\ will return a `202` status code with the location of a\n`queued-translation`.\
\ The status of the translation can be queried via `getQueuedTranslation`.\
\ After the\ntranslation is complete, a `part` and `part-revision` that references\
\ the translated geometry.\n\nA unique suppliedId/suppliedRevisionId combination\
\ will create a new part and new part revision. For instance, sending\nmy-part-id/my-revision-id\
\ will create a new part and new revision with those corresponding supplied\
\ ids. To create a new revision for `my-part-id`,\nlikewise you can invoke\
\ this endpoint with a new revision id: `my-part-id/my-new-revision-id` and\
\ a new revision will be created for the\nexisting part.\n\nSee our [Import\
\ Data](https://developer.vertexvis.com/docs/guides/import-data-with-api)\
\ guides for more\ninformation.\n"
description: |
Create a `part`.

This endpoint includes multiple successful response codes: [`201`, `202`].

When not given a relationship, this endpoint will create a part with an empty part revision and return a `201`
status code of the part.

When given a relationship to translate, this endpoint will return a `202` status code with the location of a
`queued-translation`. The status of the translation can be queried via `getQueuedTranslation`. After the
translation is complete, a `part` and `part-revision` that references the translated geometry.

A unique suppliedId/suppliedRevisionId combination will create a new part and new part revision. For instance, sending
my-part-id/my-revision-id will create a new part and new revision with those corresponding supplied ids. To create a new revision for `my-part-id`,
likewise you can invoke this endpoint with a new revision id: `my-part-id/my-new-revision-id` and a new revision will be created for the
existing part.

See our [Import Data](https://developer.vertexvis.com/docs/guides/import-data-with-api) guides for more
information.
operationId: createPart
requestBody:
content:
Expand Down Expand Up @@ -3830,8 +3877,8 @@ paths:
x-accepts: application/vnd.api+json
/property-entries:
get:
description: |
Get `property-entries` by a resource ID **Preview:** This is a preview API and is subject to change.
description: "Get `property-entries` by a resource ID \n**Preview:** This is\
\ a preview API and is subject to change.\n"
operationId: getPropertyEntries
parameters:
- description: The cursor for the next page of items.
Expand Down Expand Up @@ -8411,6 +8458,16 @@ components:
schema:
$ref: '#/components/schemas/Uuid'
style: simple
FileIdFilter:
description: Comma-separated list of file-ids to filter on.
explode: true
in: query
name: filter[fileId]
required: false
schema:
example: some-id-1,some-id-2
type: string
style: form
FileCollectionId:
description: The `file-collection` ID.
explode: false
Expand All @@ -8420,17 +8477,6 @@ components:
schema:
$ref: '#/components/schemas/Uuid'
style: simple
FileCollectionIdFilter:
description: Comma-separated list of file-colllection IDs to filter on.
explode: true
in: query
name: filter[collectionId]
required: false
schema:
example: some-id-1,some-id-2
maxLength: 1024
type: string
style: form
HasAnnotationsFilter:
description: Filter model views that contain or do not contain annotations.
explode: true
Expand Down Expand Up @@ -12755,15 +12801,6 @@ components:
maximum: 86400
minimum: 1
type: integer
maxAge:
description: Specifies the maximum time (in seconds) a cached response of
a signed-url remains fresh and can be used without revalidation. (Defaults
to 1 hour, can send up to 30 days)
example: 1000
format: int32
maximum: 2592000
minimum: 1
type: integer
type: object
CreateDownloadRequest_data:
properties:
Expand Down Expand Up @@ -13508,6 +13545,12 @@ components:
description: |
User supplied key-value pairs for a scene. You can supply up to 50 entries, with key names limited to 64 characters and values limited to 256 characters. A null value will delete the entry in the map, all other key/value pairs provided here will be inserted or updated into the existing scene metadata.
type: object
expiry:
description: Number of seconds before expiration
example: 600
format: int32
minimum: 1
type: integer
type: object
CreateSceneRequest_data_relationships:
properties:
Expand Down Expand Up @@ -13563,6 +13606,12 @@ components:
type: boolean
worldOrientation:
$ref: '#/components/schemas/Orientation'
expiry:
description: Number of seconds before expiration
example: 600
format: int32
minimum: 1
type: integer
metadata:
additionalProperties:
maxLength: 256
Expand Down Expand Up @@ -14469,7 +14518,7 @@ components:
type: integer
parent:
description: |
Optional ability to specify a parent scene item by scene item supplied ID. For example, an existing ID from a PLM system. This approach is an alternative to providing a specific scene item ID with the relationship parent property.
Optional ability to specify a parent scene item by scene item supplied ID. For example, an existing ID from a PLM system. This approach is an alternative to providing a specific scene item ID with the relationship parent property.
example: PN12345
maxLength: 1024
type: string
Expand All @@ -14478,6 +14527,25 @@ components:
supplied IDs.
example: false
type: boolean
resolutionRule:
description: "Optional rule to guide the part-revision resolution algorithm\
\ in cases where required qualifiers are not explicitly specified by the\
\ query. In the case of assembly parts, the resolution rule also applies\
\ recursively to the resolution of the child parts.\n'as-specified' (the\
\ default) directs the resolution algorithm to use only the ids specified\
\ in this query. An incomplete specification will result in an error.\
\ \n'latest-iteration' directs the resolution algorithm to select, within\
\ the scope of the specified part-revision, the iteration possessing the\
\ newest creation timestamp. Any iteration identifiers specified by this\
\ query are ignored. Failure to specify a part-revision will result in\
\ an error. \n'latest-revision' directs the resolution algorithm to select\
\ the part-revision possessing the newest creation timestamp. 'latest-revision'\
\ implies 'latest-iteration' resolution logic.\n"
enum:
- as-specified
- latest-iteration
- latest-revision
type: string
source:
$ref: '#/components/schemas/PartRevisionSuppliedId'
suppliedId:
Expand Down Expand Up @@ -14511,7 +14579,7 @@ components:
type: object
experimentalSourceMetadataKeys:
description: |
Specifies which metadata keys should be copied from the source item. Sending null will default to all keys. Sending an empty string will copy none of the sources' metadata. Sending an array of ["KEY1", "KEY2] will include KEY1 and KEY2 from the source in the scene item creation. This is marked experimental since future releases are expected to prevent copying metadata entirely.
Specifies which metadata keys should be copied from the source item. Sending null will default to all keys. Sending an empty string will copy none of the sources' metadata. Sending an array of ["KEY1", "KEY2] will include KEY1 and KEY2 from the source in the scene item creation. This is marked experimental since future releases are expected to prevent copying metadata entirely.
items:
type: string
maxItems: 500
Expand Down Expand Up @@ -14616,6 +14684,10 @@ components:
to be explicitly requested)
example: 100
type: integer
expiresAt:
example: 2020-01-01T12:00:00Z
format: date-time
type: string
metadata:
additionalProperties:
maxLength: 256
Expand Down
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ plugins {
}

group = 'com.vertexvis'
version = '0.9.0'
version = '0.10.0'

repositories {
mavenCentral()
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/com/vertexvis/ApiClient.java
Original file line number Diff line number Diff line change
Expand Up @@ -207,7 +207,7 @@ private void init() {
json = new JSON();

// Set default User-Agent.
setUserAgent("vertex-api-client-java/0.9.0");
setUserAgent("vertex-api-client-java/0.10.0");

authentications = new HashMap<String, Authentication>();
}
Expand Down
Loading