5
5
[ ![ Data-Management] ( https://img.shields.io/badge/Data%20Management-v1-green.svg )] ( http://autodesk-forge.github.io/ )
6
6
[ ![ OSS] ( https://img.shields.io/badge/OSS-v2-green.svg )] ( http://autodesk-forge.github.io/ )
7
7
[ ![ Model-Derivative] ( https://img.shields.io/badge/Model%20Derivative-v2-green.svg )] ( http://autodesk-forge.github.io/ )
8
+ [ ![ Build Status] ( https://travis-ci.org/dukedhx/forge-api-java-client.svg?branch=master )] ( https://travis-ci.org/dukedhx/forge-api-java-client )
8
9
9
10
## Overview
10
11
This [ Java] ( https://java.com/ ) SDK enables you to easily integrate the Forge REST APIs into your application,
@@ -136,22 +137,22 @@ public class ForgeApiExample {
136
137
137
138
public static void main (String [] args ) {
138
139
139
- try {
140
+ try {
140
141
List<String > scopes = new ArrayList<String > ();
141
142
scopes. add(" data:read" );
142
143
scopes. add(" data:write" );
143
144
scopes. add(" bucket:create" );
144
145
scopes. add(" bucket:read" );
145
-
146
+
146
147
// Initialize the oauth2TwoLegged object using the client key and client secret you received when creating the app on the Forge Developer portal:
147
148
OAuth2TwoLegged oauth2TwoLegged = new OAuth2TwoLegged (" <CLIENT_ID>" , " <CLIENT_SECRET>" , scopes, true );
148
149
Credentials twoLeggedCredentials = oauth2TwoLegged. authenticate();
149
150
150
151
// Initialize the relevant clients; in this example, the Hubs and Buckets clients (part of the Data Management API).
151
152
BucketsApi bucketsApi = new BucketsApi ();
152
153
HubsApi hubsApi = new HubsApi ();
153
-
154
- // Create a new bucket
154
+
155
+ // Create a new bucket
155
156
// Use the oauth2TwoLegged and twoLeggedCredentials objects that you retrieved previously.
156
157
PostBucketsPayload payload = new PostBucketsPayload ();
157
158
payload. setBucketKey(" test_bucket_key" );
@@ -212,60 +213,60 @@ Class | Method | HTTP request | Description
212
213
* AppPackagesApi* | [ ** patchAppPackage** ] ( docs/AppPackagesApi.md#patchAppPackage ) | ** PATCH** /autocad.io/us-east/v2/AppPackages(' ; {id}' ; ) | Updates an AppPackage by specifying only the changed attributes.
213
214
* AppPackagesApi* | [ ** setAppPackageVersion** ] ( docs/AppPackagesApi.md#setAppPackageVersion ) | ** POST** /autocad.io/us-east/v2/AppPackages(' ; {id}' ; )/Operations.SetVersion | Sets the AppPackage to the specified version.
214
215
* AppPackagesApi* | [ ** updateAppPackage** ] ( docs/AppPackagesApi.md#updateAppPackage ) | ** PUT** /autocad.io/us-east/v2/AppPackages(' ; {id}' ; ) | Updates an AppPackage by redefining the entire Activity object.
215
- * BucketsApi* | [ ** createBucket** ] ( docs/BucketsApi.md#createBucket ) | ** POST** /oss/v2/buckets |
216
- * BucketsApi* | [ ** deleteBucket** ] ( docs/BucketsApi.md#deleteBucket ) | ** DELETE** /oss/v2/buckets/{bucketKey} |
217
- * BucketsApi* | [ ** getBucketDetails** ] ( docs/BucketsApi.md#getBucketDetails ) | ** GET** /oss/v2/buckets/{bucketKey}/details |
218
- * BucketsApi* | [ ** getBuckets** ] ( docs/BucketsApi.md#getBuckets ) | ** GET** /oss/v2/buckets |
219
- * DerivativesApi* | [ ** deleteManifest** ] ( docs/DerivativesApi.md#deleteManifest ) | ** DELETE** /modelderivative/v2/designdata/{urn}/manifest |
220
- * DerivativesApi* | [ ** getDerivativeManifest** ] ( docs/DerivativesApi.md#getDerivativeManifest ) | ** GET** /modelderivative/v2/designdata/{urn}/manifest/{derivativeUrn} |
221
- * DerivativesApi* | [ ** getFormats** ] ( docs/DerivativesApi.md#getFormats ) | ** GET** /modelderivative/v2/designdata/formats |
222
- * DerivativesApi* | [ ** getManifest** ] ( docs/DerivativesApi.md#getManifest ) | ** GET** /modelderivative/v2/designdata/{urn}/manifest |
223
- * DerivativesApi* | [ ** getMetadata** ] ( docs/DerivativesApi.md#getMetadata ) | ** GET** /modelderivative/v2/designdata/{urn}/metadata |
224
- * DerivativesApi* | [ ** getModelviewMetadata** ] ( docs/DerivativesApi.md#getModelviewMetadata ) | ** GET** /modelderivative/v2/designdata/{urn}/metadata/{guid} |
225
- * DerivativesApi* | [ ** getModelviewProperties** ] ( docs/DerivativesApi.md#getModelviewProperties ) | ** GET** /modelderivative/v2/designdata/{urn}/metadata/{guid}/properties |
226
- * DerivativesApi* | [ ** getThumbnail** ] ( docs/DerivativesApi.md#getThumbnail ) | ** GET** /modelderivative/v2/designdata/{urn}/thumbnail |
227
- * DerivativesApi* | [ ** translate** ] ( docs/DerivativesApi.md#translate ) | ** POST** /modelderivative/v2/designdata/job |
216
+ * BucketsApi* | [ ** createBucket** ] ( docs/BucketsApi.md#createBucket ) | ** POST** /oss/v2/buckets |
217
+ * BucketsApi* | [ ** deleteBucket** ] ( docs/BucketsApi.md#deleteBucket ) | ** DELETE** /oss/v2/buckets/{bucketKey} |
218
+ * BucketsApi* | [ ** getBucketDetails** ] ( docs/BucketsApi.md#getBucketDetails ) | ** GET** /oss/v2/buckets/{bucketKey}/details |
219
+ * BucketsApi* | [ ** getBuckets** ] ( docs/BucketsApi.md#getBuckets ) | ** GET** /oss/v2/buckets |
220
+ * DerivativesApi* | [ ** deleteManifest** ] ( docs/DerivativesApi.md#deleteManifest ) | ** DELETE** /modelderivative/v2/designdata/{urn}/manifest |
221
+ * DerivativesApi* | [ ** getDerivativeManifest** ] ( docs/DerivativesApi.md#getDerivativeManifest ) | ** GET** /modelderivative/v2/designdata/{urn}/manifest/{derivativeUrn} |
222
+ * DerivativesApi* | [ ** getFormats** ] ( docs/DerivativesApi.md#getFormats ) | ** GET** /modelderivative/v2/designdata/formats |
223
+ * DerivativesApi* | [ ** getManifest** ] ( docs/DerivativesApi.md#getManifest ) | ** GET** /modelderivative/v2/designdata/{urn}/manifest |
224
+ * DerivativesApi* | [ ** getMetadata** ] ( docs/DerivativesApi.md#getMetadata ) | ** GET** /modelderivative/v2/designdata/{urn}/metadata |
225
+ * DerivativesApi* | [ ** getModelviewMetadata** ] ( docs/DerivativesApi.md#getModelviewMetadata ) | ** GET** /modelderivative/v2/designdata/{urn}/metadata/{guid} |
226
+ * DerivativesApi* | [ ** getModelviewProperties** ] ( docs/DerivativesApi.md#getModelviewProperties ) | ** GET** /modelderivative/v2/designdata/{urn}/metadata/{guid}/properties |
227
+ * DerivativesApi* | [ ** getThumbnail** ] ( docs/DerivativesApi.md#getThumbnail ) | ** GET** /modelderivative/v2/designdata/{urn}/thumbnail |
228
+ * DerivativesApi* | [ ** translate** ] ( docs/DerivativesApi.md#translate ) | ** POST** /modelderivative/v2/designdata/job |
228
229
* EnginesApi* | [ ** getAllEngines** ] ( docs/EnginesApi.md#getAllEngines ) | ** GET** /autocad.io/us-east/v2/Engines | Returns the details of all available AutoCAD core engines.
229
230
* EnginesApi* | [ ** getEngine** ] ( docs/EnginesApi.md#getEngine ) | ** GET** /autocad.io/us-east/v2/Engines(' ; {id}' ; ) | Returns the details of a specific AutoCAD core engine.
230
- * FoldersApi* | [ ** getFolder** ] ( docs/FoldersApi.md#getFolder ) | ** GET** /data/v1/projects/{project_id}/folders/{folder_id} |
231
- * FoldersApi* | [ ** getFolderContents** ] ( docs/FoldersApi.md#getFolderContents ) | ** GET** /data/v1/projects/{project_id}/folders/{folder_id}/contents |
232
- * FoldersApi* | [ ** getFolderParent** ] ( docs/FoldersApi.md#getFolderParent ) | ** GET** /data/v1/projects/{project_id}/folders/{folder_id}/parent |
233
- * FoldersApi* | [ ** getFolderRefs** ] ( docs/FoldersApi.md#getFolderRefs ) | ** GET** /data/v1/projects/{project_id}/folders/{folder_id}/refs |
234
- * FoldersApi* | [ ** getFolderRelationshipsRefs** ] ( docs/FoldersApi.md#getFolderRelationshipsRefs ) | ** GET** /data/v1/projects/{project_id}/folders/{folder_id}/relationships/refs |
235
- * FoldersApi* | [ ** postFolderRelationshipsRef** ] ( docs/FoldersApi.md#postFolderRelationshipsRef ) | ** POST** /data/v1/projects/{project_id}/folders/{folder_id}/relationships/refs |
236
- * HubsApi* | [ ** getHub** ] ( docs/HubsApi.md#getHub ) | ** GET** /project/v1/hubs/{hub_id} |
237
- * HubsApi* | [ ** getHubs** ] ( docs/HubsApi.md#getHubs ) | ** GET** /project/v1/hubs |
238
- * ItemsApi* | [ ** getItem** ] ( docs/ItemsApi.md#getItem ) | ** GET** /data/v1/projects/{project_id}/items/{item_id} |
239
- * ItemsApi* | [ ** getItemParentFolder** ] ( docs/ItemsApi.md#getItemParentFolder ) | ** GET** /data/v1/projects/{project_id}/items/{item_id}/parent |
240
- * ItemsApi* | [ ** getItemRefs** ] ( docs/ItemsApi.md#getItemRefs ) | ** GET** /data/v1/projects/{project_id}/items/{item_id}/refs |
241
- * ItemsApi* | [ ** getItemRelationshipsRefs** ] ( docs/ItemsApi.md#getItemRelationshipsRefs ) | ** GET** /data/v1/projects/{project_id}/items/{item_id}/relationships/refs |
242
- * ItemsApi* | [ ** getItemTip** ] ( docs/ItemsApi.md#getItemTip ) | ** GET** /data/v1/projects/{project_id}/items/{item_id}/tip |
243
- * ItemsApi* | [ ** getItemVersions** ] ( docs/ItemsApi.md#getItemVersions ) | ** GET** /data/v1/projects/{project_id}/items/{item_id}/versions |
244
- * ItemsApi* | [ ** postItemRelationshipsRef** ] ( docs/ItemsApi.md#postItemRelationshipsRef ) | ** POST** /data/v1/projects/{project_id}/items/{item_id}/relationships/refs |
245
- * ItemsApi* | [ ** postItem** ] ( docs/ItemsApi.md#postItem ) | ** POST** /data/v1/projects/{project_id}/items |
246
- * ObjectsApi* | [ ** copyTo** ] ( docs/ObjectsApi.md#copyTo ) | ** PUT** /oss/v2/buckets/{bucketKey}/objects/{objectName}/copyTo/{newObjName} |
247
- * ObjectsApi* | [ ** createSignedResource** ] ( docs/ObjectsApi.md#createSignedResource ) | ** POST** /oss/v2/buckets/{bucketKey}/objects/{objectName}/signed |
248
- * ObjectsApi* | [ ** deleteObject** ] ( docs/ObjectsApi.md#deleteObject ) | ** DELETE** /oss/v2/buckets/{bucketKey}/objects/{objectName} |
249
- * ObjectsApi* | [ ** deleteSignedResource** ] ( docs/ObjectsApi.md#deleteSignedResource ) | ** DELETE** /oss/v2/signedresources/{id} |
250
- * ObjectsApi* | [ ** getObject** ] ( docs/ObjectsApi.md#getObject ) | ** GET** /oss/v2/buckets/{bucketKey}/objects/{objectName} |
251
- * ObjectsApi* | [ ** getObjectDetails** ] ( docs/ObjectsApi.md#getObjectDetails ) | ** GET** /oss/v2/buckets/{bucketKey}/objects/{objectName}/details |
252
- * ObjectsApi* | [ ** getObjects** ] ( docs/ObjectsApi.md#getObjects ) | ** GET** /oss/v2/buckets/{bucketKey}/objects |
253
- * ObjectsApi* | [ ** getStatusBySessionId** ] ( docs/ObjectsApi.md#getStatusBySessionId ) | ** GET** /oss/v2/buckets/{bucketKey}/objects/{objectName}/status/{sessionId} |
254
- * ObjectsApi* | [ ** getSignedResource** ] ( docs/ObjectsApi.md#getSignedResource ) | ** GET** /oss/v2/signedresources/{id} |
255
- * ObjectsApi* | [ ** uploadChunk** ] ( docs/ObjectsApi.md#uploadChunk ) | ** PUT** /oss/v2/buckets/{bucketKey}/objects/{objectName}/resumable |
256
- * ObjectsApi* | [ ** uploadObject** ] ( docs/ObjectsApi.md#uploadObject ) | ** PUT** /oss/v2/buckets/{bucketKey}/objects/{objectName} |
257
- * ObjectsApi* | [ ** uploadSignedResource** ] ( docs/ObjectsApi.md#uploadSignedResource ) | ** PUT** /oss/v2/signedresources/{id} |
258
- * ObjectsApi* | [ ** uploadSignedResourcesChunk** ] ( docs/ObjectsApi.md#uploadSignedResourcesChunk ) | ** PUT** /oss/v2/signedresources/{id}/resumable |
259
- * ProjectsApi* | [ ** getProject** ] ( docs/ProjectsApi.md#getProject ) | ** GET** /project/v1/hubs/{hub_id}/projects/{project_id} |
260
- * ProjectsApi* | [ ** getProjectHub** ] ( docs/ProjectsApi.md#getProjectHub ) | ** GET** /project/v1/hubs/{hub_id}/projects/{project_id}/hub |
261
- * ProjectsApi* | [ ** postStorage** ] ( docs/ProjectsApi.md#postStorage ) | ** POST** /data/v1/projects/{project_id}/storage |
262
- * ProjectsApi* | [ ** postVersion** ] ( docs/ProjectsApi.md#postVersion ) | ** POST** /data/v1/projects/{project_id}/versions |
263
- * ProjectsApi* | [ ** getHubProjects** ] ( docs/ProjectsApi.md#getHubProjects ) | ** GET** /project/v1/hubs/{hub_id}/projects |
264
- * VersionsApi* | [ ** getVersion** ] ( docs/VersionsApi.md#getVersion ) | ** GET** /data/v1/projects/{project_id}/versions/{version_id} |
265
- * VersionsApi* | [ ** getVersionItem** ] ( docs/VersionsApi.md#getVersionItem ) | ** GET** /data/v1/projects/{project_id}/versions/{version_id}/item |
266
- * VersionsApi* | [ ** getVersionRefs** ] ( docs/VersionsApi.md#getVersionRefs ) | ** GET** /data/v1/projects/{project_id}/versions/{version_id}/refs |
267
- * VersionsApi* | [ ** getVersionRelationshipsRefs** ] ( docs/VersionsApi.md#getVersionRelationshipsRefs ) | ** GET** /data/v1/projects/{project_id}/versions/{version_id}/relationships/refs |
268
- * VersionsApi* | [ ** postVersionRelationshipsRef** ] ( docs/VersionsApi.md#postVersionRelationshipsRef ) | ** POST** /data/v1/projects/{project_id}/versions/{version_id}/relationships/refs |
231
+ * FoldersApi* | [ ** getFolder** ] ( docs/FoldersApi.md#getFolder ) | ** GET** /data/v1/projects/{project_id}/folders/{folder_id} |
232
+ * FoldersApi* | [ ** getFolderContents** ] ( docs/FoldersApi.md#getFolderContents ) | ** GET** /data/v1/projects/{project_id}/folders/{folder_id}/contents |
233
+ * FoldersApi* | [ ** getFolderParent** ] ( docs/FoldersApi.md#getFolderParent ) | ** GET** /data/v1/projects/{project_id}/folders/{folder_id}/parent |
234
+ * FoldersApi* | [ ** getFolderRefs** ] ( docs/FoldersApi.md#getFolderRefs ) | ** GET** /data/v1/projects/{project_id}/folders/{folder_id}/refs |
235
+ * FoldersApi* | [ ** getFolderRelationshipsRefs** ] ( docs/FoldersApi.md#getFolderRelationshipsRefs ) | ** GET** /data/v1/projects/{project_id}/folders/{folder_id}/relationships/refs |
236
+ * FoldersApi* | [ ** postFolderRelationshipsRef** ] ( docs/FoldersApi.md#postFolderRelationshipsRef ) | ** POST** /data/v1/projects/{project_id}/folders/{folder_id}/relationships/refs |
237
+ * HubsApi* | [ ** getHub** ] ( docs/HubsApi.md#getHub ) | ** GET** /project/v1/hubs/{hub_id} |
238
+ * HubsApi* | [ ** getHubs** ] ( docs/HubsApi.md#getHubs ) | ** GET** /project/v1/hubs |
239
+ * ItemsApi* | [ ** getItem** ] ( docs/ItemsApi.md#getItem ) | ** GET** /data/v1/projects/{project_id}/items/{item_id} |
240
+ * ItemsApi* | [ ** getItemParentFolder** ] ( docs/ItemsApi.md#getItemParentFolder ) | ** GET** /data/v1/projects/{project_id}/items/{item_id}/parent |
241
+ * ItemsApi* | [ ** getItemRefs** ] ( docs/ItemsApi.md#getItemRefs ) | ** GET** /data/v1/projects/{project_id}/items/{item_id}/refs |
242
+ * ItemsApi* | [ ** getItemRelationshipsRefs** ] ( docs/ItemsApi.md#getItemRelationshipsRefs ) | ** GET** /data/v1/projects/{project_id}/items/{item_id}/relationships/refs |
243
+ * ItemsApi* | [ ** getItemTip** ] ( docs/ItemsApi.md#getItemTip ) | ** GET** /data/v1/projects/{project_id}/items/{item_id}/tip |
244
+ * ItemsApi* | [ ** getItemVersions** ] ( docs/ItemsApi.md#getItemVersions ) | ** GET** /data/v1/projects/{project_id}/items/{item_id}/versions |
245
+ * ItemsApi* | [ ** postItemRelationshipsRef** ] ( docs/ItemsApi.md#postItemRelationshipsRef ) | ** POST** /data/v1/projects/{project_id}/items/{item_id}/relationships/refs |
246
+ * ItemsApi* | [ ** postItem** ] ( docs/ItemsApi.md#postItem ) | ** POST** /data/v1/projects/{project_id}/items |
247
+ * ObjectsApi* | [ ** copyTo** ] ( docs/ObjectsApi.md#copyTo ) | ** PUT** /oss/v2/buckets/{bucketKey}/objects/{objectName}/copyTo/{newObjName} |
248
+ * ObjectsApi* | [ ** createSignedResource** ] ( docs/ObjectsApi.md#createSignedResource ) | ** POST** /oss/v2/buckets/{bucketKey}/objects/{objectName}/signed |
249
+ * ObjectsApi* | [ ** deleteObject** ] ( docs/ObjectsApi.md#deleteObject ) | ** DELETE** /oss/v2/buckets/{bucketKey}/objects/{objectName} |
250
+ * ObjectsApi* | [ ** deleteSignedResource** ] ( docs/ObjectsApi.md#deleteSignedResource ) | ** DELETE** /oss/v2/signedresources/{id} |
251
+ * ObjectsApi* | [ ** getObject** ] ( docs/ObjectsApi.md#getObject ) | ** GET** /oss/v2/buckets/{bucketKey}/objects/{objectName} |
252
+ * ObjectsApi* | [ ** getObjectDetails** ] ( docs/ObjectsApi.md#getObjectDetails ) | ** GET** /oss/v2/buckets/{bucketKey}/objects/{objectName}/details |
253
+ * ObjectsApi* | [ ** getObjects** ] ( docs/ObjectsApi.md#getObjects ) | ** GET** /oss/v2/buckets/{bucketKey}/objects |
254
+ * ObjectsApi* | [ ** getStatusBySessionId** ] ( docs/ObjectsApi.md#getStatusBySessionId ) | ** GET** /oss/v2/buckets/{bucketKey}/objects/{objectName}/status/{sessionId} |
255
+ * ObjectsApi* | [ ** getSignedResource** ] ( docs/ObjectsApi.md#getSignedResource ) | ** GET** /oss/v2/signedresources/{id} |
256
+ * ObjectsApi* | [ ** uploadChunk** ] ( docs/ObjectsApi.md#uploadChunk ) | ** PUT** /oss/v2/buckets/{bucketKey}/objects/{objectName}/resumable |
257
+ * ObjectsApi* | [ ** uploadObject** ] ( docs/ObjectsApi.md#uploadObject ) | ** PUT** /oss/v2/buckets/{bucketKey}/objects/{objectName} |
258
+ * ObjectsApi* | [ ** uploadSignedResource** ] ( docs/ObjectsApi.md#uploadSignedResource ) | ** PUT** /oss/v2/signedresources/{id} |
259
+ * ObjectsApi* | [ ** uploadSignedResourcesChunk** ] ( docs/ObjectsApi.md#uploadSignedResourcesChunk ) | ** PUT** /oss/v2/signedresources/{id}/resumable |
260
+ * ProjectsApi* | [ ** getProject** ] ( docs/ProjectsApi.md#getProject ) | ** GET** /project/v1/hubs/{hub_id}/projects/{project_id} |
261
+ * ProjectsApi* | [ ** getProjectHub** ] ( docs/ProjectsApi.md#getProjectHub ) | ** GET** /project/v1/hubs/{hub_id}/projects/{project_id}/hub |
262
+ * ProjectsApi* | [ ** postStorage** ] ( docs/ProjectsApi.md#postStorage ) | ** POST** /data/v1/projects/{project_id}/storage |
263
+ * ProjectsApi* | [ ** postVersion** ] ( docs/ProjectsApi.md#postVersion ) | ** POST** /data/v1/projects/{project_id}/versions |
264
+ * ProjectsApi* | [ ** getHubProjects** ] ( docs/ProjectsApi.md#getHubProjects ) | ** GET** /project/v1/hubs/{hub_id}/projects |
265
+ * VersionsApi* | [ ** getVersion** ] ( docs/VersionsApi.md#getVersion ) | ** GET** /data/v1/projects/{project_id}/versions/{version_id} |
266
+ * VersionsApi* | [ ** getVersionItem** ] ( docs/VersionsApi.md#getVersionItem ) | ** GET** /data/v1/projects/{project_id}/versions/{version_id}/item |
267
+ * VersionsApi* | [ ** getVersionRefs** ] ( docs/VersionsApi.md#getVersionRefs ) | ** GET** /data/v1/projects/{project_id}/versions/{version_id}/refs |
268
+ * VersionsApi* | [ ** getVersionRelationshipsRefs** ] ( docs/VersionsApi.md#getVersionRelationshipsRefs ) | ** GET** /data/v1/projects/{project_id}/versions/{version_id}/relationships/refs |
269
+ * VersionsApi* | [ ** postVersionRelationshipsRef** ] ( docs/VersionsApi.md#postVersionRelationshipsRef ) | ** POST** /data/v1/projects/{project_id}/versions/{version_id}/relationships/refs |
269
270
* WorkItemsApi* | [ ** createWorkItem** ] ( docs/WorkItemsApi.md#createWorkItem ) | ** POST** /autocad.io/us-east/v2/WorkItems | Creates a new WorkItem.
270
271
* WorkItemsApi* | [ ** deleteWorkItem** ] ( docs/WorkItemsApi.md#deleteWorkItem ) | ** DELETE** /autocad.io/us-east/v2/WorkItems(' ; {id}' ; ) | Removes a specific WorkItem.
271
272
* WorkItemsApi* | [ ** getAllWorkItems** ] ( docs/WorkItemsApi.md#getAllWorkItems ) | ** GET** /autocad.io/us-east/v2/WorkItems | Returns the details of all WorkItems.
@@ -279,4 +280,3 @@ Class | Method | HTTP request | Description
279
280
## Support
280
281
281
282
forge.help@autodesk.com
282
-
0 commit comments